CIBC Wiki cibc_wikidb http://cibcwiki.sci.utah.edu/cibc/wiki/index.php/Main_Page MediaWiki 1.33.1 first-letter Media Special Talk User User talk CIBC Wiki CIBC Wiki talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Exec Exec Talk Collab Collab Talk Main Page 0 1 1 2005-06-28T21:08:36Z MediaWiki default 0 wikitext text/x-wiki Wiki software successfully installed. Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 2 1 2005-06-28T22:43:02Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development, Engineering, and Dissemination Wiki! == Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 3 2 2005-06-28T22:44:27Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development, Engineering, and Dissemination Wiki! == Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 4 3 2005-06-28T22:45:18Z Erikj 2 /* Welcome to the Biomedical Software Development, Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 5 4 2005-06-30T17:23:19Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == Try this: link to a [[new page]]. Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 6 5 2005-06-30T17:27:01Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == Try this: link to a [[Experimental Page]]. Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 940 6 2005-06-30T20:03:18Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == <img scr="images/nih-ncrr-sci_logobar.gif"><br> Try this: link to a [[Experimental Page]]. Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 941 940 2005-07-01T17:35:56Z 155.98.18.40 0 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == <img src="images/nih-ncrr-sci_logobar.gif"><br> Try this: link to a [[Experimental Page]]. Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 942 941 2005-07-01T17:59:34Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == A picture: [[Image:nih-ncrr-sci_logobar.gif|NIH NCRR and SCI Logos]] Try this: link to a [[Experimental Page]]. Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 943 942 2005-07-01T21:07:57Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar.jpg|NIH NCRR and SCI Logos]]<br> Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help. 944 943 2005-07-01T22:54:46Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar.jpg|NIH NCRR and SCI Logos]]<br> Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help.. 945 944 2005-07-19T23:23:01Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar.jpg|NIH NCRR and SCI Logos]]<br> [[Events]] Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help.. 947 945 2005-07-19T23:29:31Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar.jpg|NIH NCRR and SCI Logos]]<br> == [[Events]] == Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help.. 948 947 2005-07-27T20:46:40Z Erikj 2 /* [[Events]] */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar.jpg|NIH NCRR and SCI Logos]]<br> == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface] and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] for usage and configuration help.. 949 948 2005-07-27T20:59:32Z Erikj 2 /* Wiki Help */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar.jpg|NIH NCRR and SCI Logos]]<br> == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 950 949 2005-08-02T17:53:35Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 952 950 2005-08-02T18:05:55Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 953 952 2005-12-15T21:03:46Z Erikj 2 /* [[Events]] */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 954 953 2005-12-15T21:04:50Z Erikj 2 /* [[Events]] */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 955 954 2005-12-15T21:05:59Z Erikj 2 /* [[Events]] */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 956 955 2005-12-15T21:06:25Z Erikj 2 /* [[Events]] */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 957 956 2005-12-15T21:07:38Z Erikj 2 /* Center Management */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 958 957 2005-12-15T21:08:20Z Erikj 2 /* [[Events]] */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 959 958 2005-12-15T21:08:41Z Erikj 2 /* [[Events]] */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] == [[Events]] == [[NCRR NIBIB PI Meeting June 22-23 2005]] == Wiki Help == * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. Experimental Page 0 935 3072 2005-06-30T17:23:52Z Erikj 2 This is a test new page. wikitext text/x-wiki This is a new page. New page 0 936 3073 2005-06-30T17:26:30Z Erikj 2 New page moved to Experimental Page wikitext text/x-wiki #REDIRECT [[Experimental Page]] File:Nih-ncrr-sci logobar.jpg 6 937 3074 2005-07-01T22:52:08Z Erikj 2 NIH NCRR and SCI logos. wikitext text/x-wiki NIH NCRR and SCI logos. Events 0 938 3075 2005-07-19T23:25:49Z Erikj 2 wikitext text/x-wiki [[NCRR NIBIB PI Meeting June 22-23 2005]] NCRR NIBIB PI Meeting June 22-23 2005 0 939 946 2005-07-19T23:27:41Z Erikj 2 wikitext text/x-wiki Bill Lorensen gave an invited presentation at the annual NIH NCRR/NIBIB Principal Investigator's Meeting in Bethesda, June 22-23. 2005. Chris Johnson, Director of the SCI Institute at Utah organized the session. After Bill's presentation, Chris, Bill and Bret Peterson (NIH NCRR) participated in a panel on software engineering and dissemination. The talk and panel were followed by active audience participation, showing the high level of interest in software at many of the NCRR P41 sites. Bill's talk was called: "Open, Distributed and Collaborative Software Development." His panel position was called: "Open Software Engineering." 951 946 2005-07-19T23:38:12Z Erikj 2 wikitext text/x-wiki Bill Lorensen gave an invited presentation at the annual NIH [http://www.ncrr.nih.gov NCRR]/[http://www.nibib1.nih.gov NIBIB] Principal Investigator's Meeting in Bethesda, June 22-23. 2005. Chris Johnson, Director of the [http://www.sci.utah.edu SCI Institute] at Utah organized the session. After Bill's presentation, Chris, Bill and Bret Peterson (NIH NCRR) participated in a panel on software engineering and dissemination. The talk and panel were followed by active audience participation, showing the high level of interest in software at many of the NCRR P41 sites. Bill's talk was called: [[Media:LorensenNCRR.ppt|"Open, Distributed and Collaborative Software Development."]] His panel position was called: [[Media:LorensenNCRRPanel.ppt|"Open Software Engineering."]] 3076 951 2005-08-24T18:02:37Z Erikj 2 wikitext text/x-wiki Bill Lorensen gave an invited presentation at the annual NIH [http://www.ncrr.nih.gov NCRR]/[http://www.nibib1.nih.gov NIBIB] Principal Investigator's Meeting in Bethesda, June 22-23. 2005. Chris Johnson, Director of the [http://www.sci.utah.edu SCI Institute] at Utah organized the session. After Bill's presentation, Chris, Bill and Bret Peterson (NIH NCRR) participated in a panel on software engineering and dissemination. The talk and panel were followed by active audience participation, showing the high level of interest in software at many of the NCRR P41 sites. Bill's talk was called: [[Media:P41_meeting_peterson.ppt|"Open, Distributed and Collaborative Software Development."]] [[Media:P41_meeting_peterson.pdf|[PDF]]] File:Nih-ncrr-sci logobar2.jpg 6 940 2138 2005-08-02T18:04:17Z Erikj 2 NIH NCRR and SCI Logos. wikitext text/x-wiki NIH NCRR and SCI Logos. File:P41 meeting peterson.pdf 6 941 3077 2005-08-03T17:01:08Z Erikj 2 P41 Meeting PDF. wikitext text/x-wiki P41 Meeting PDF. CIBC:Core:BioPSE 0 944 3078 2005-12-15T21:10:30Z Erikj 2 wikitext text/x-wiki == Background == This section of the Wiki is dedicated to describing the CIBC goals for developing the software architecture and infrastructure. The [http://internal.sci.utah.edu/proposals/nih05/ grant text ] contains a starting point for this discussion so please read that for an introduction. == Requirements list == For each collaboration, list the technical specifications of the software needs from the specific perspectives of: a) control structure, b) data representation, c) user interface, and d) algorithms. Try and convey where there are existing solutions and where there is great need for new or better solutions. If possible, list where SCIRun covers any of these needs now. Try and be clear about which parts of the technical needs are development projects, i.e., the methods are known and just need implementation, and which parts include significant research. [[Technical requirements driven by collaborations|Requirements list]] == Paring Down of SCIRun== In an effort to reduce the size and complexity of SCIRun, in November, 2005, we began a project to trim down the code, increase its robustness, and enhance portability. See the link before for details. [[Paring Down SCIRun|Details of paring down SCIRun]] == Agenda Next Management Meeting == [1] How can we better separate our SCIRun development from the rest of SCIRun. (a) Could we branch of our own development tree, and then only distribute our own tree which we then could make far more lightweight? (b) Could we fix the few things in the Core and then use our own packages to customize SCIRun (What needs to be done to the Core to make it work sufficiently for us to work with) (c) do we want to keep all developments in the same tree? Do we know what NCRR-exec wants in this regard? [2] What do we do with the BioPSE package? It has a lot of not well maintained code. Currently Frank is updating the FEM stuff, but that actually should go into the Core. Who is using the BioPSE package, apart from the FEM stuff I don't see many of the collaborations using it. [3] I am working with Micheal on cleaning up some of the Core and fixing some problems. I would propose to go ahead with the Algorithm/Module separation. It is not such a big project and will improve the Core in terms of usability and will formally separate Core and Dataflow in a nice way. I talked to Micheal and he seems to agree it is not such a huge effort and should be easily doable. [4] Topics we discussed last time but did not get to decide on: What is the future of dynamic compilation? How do we set up regression testing? What do we do with the memory management? My suggestion : first do algorithm separation => then regression testing on an algorithm basis => then deal with dynamic compilation => then deal with the memory management issues. [5] I talked to Micheal and McKay and they are looking into tracing the problems with the viewer, which is still crashing. McKay will get back to me on how to get better stack traces on my Mac and how to setup my build to contain more debugging information, so he can use that information when I succeed in crashing SCIRun again (I guess I have become an expert in crashing SCIRun :)). I will ask Frank as well to build with a stacktrace option, so feedback to the developers will be more complete. This way we could collect more SIGBUS crashes and at least pinpoint the functions where this occurs, which be possibly the best help to the developers. I guess this would be my suggestion to further improve debugging. [6] When do we expect to have a new stable version? I was not really impressed with 1.24.2 as it crashes in the viewer a lot, which is not a good sign for a visualization package. Hence we haven't released a stable version since last April. We still have collaborators, so perhaps before we remove the dynamic compilation we could at least have a kind of 'beta' release, the collaborators can download for the few projects in which we are already attempting to use SCIRun. [7] I am planning to write some modules with Frank to smooth a linear model into a quadratic or hermitatian mesh. Using a C1 constraint and a local curvature threshold we hope to make a module that can translate models like the Utah torso into higher order versions. The reason is that there are no good tools for this out there and that such a scheme is easy publishable. Although it might not directly impact the current collaborations, if we have tools for making models higher order it will get us a publication and we could present it at a conference and will give SCIRun another feature other software packages do not have. Furthermore, we could apply these techniques in Bruce's modeling of the heart. Visualy the higher order models look more impressive too. Any suggestions? [8] CMake/Dart demonstration. [9] Interpolation/Mapping/Distance. It would be nice to extend the basis classes with a projection operator to find the point to the closest to the element. Similarly it would be nice to have a boundaing box (A lot of the algorithms make use of a bounding box to see in which grid an element is located, this does not work anymore as the estimated bounding box is flawed). Interpolating between to close surfaces does not seem to work as well. Currently a linear interpolation is used if the node where we need an interpolation is inside the volume, however if it is not we do a closest point search. The latter will be flawed in certain geometrical circumstances, e.g. a triangle can be right underneath the interpolation point, but its center can be further away then a neighboring triangle. This leads to confusing situations. Functions like direct interpolate do not use the new basis functions. Hence we should start thinking on how to improve this and make the interpolation/mapping functions more coherent. Paring Down SCIRun 0 945 3079 2005-12-15T21:11:48Z Erikj 2 wikitext text/x-wiki The goal of this process is to reduce the size and complexity of the SCIRun infrastructure in order to make it more robust and flexible. There will be some loss of generality in the process, but this is a fair price to pay for the advanrages. == Remove dead code == * identify parts of the code that are not used * find functions that have been replaced and should be retired ==Remove or minimize dynamic compilation== * is essential for real time parsing of equations and commands in TransformData module * what about leaving in that module but remove it from all other modules * over time, replace the functionality we used in TransformData * make scientific data calculator a student project sometime * how will removal affect compilation time? hard to tell. * todo: make a plan for how to remove this before they start. * the cost will be in the range of types we can handle, and overhead in type checking * how can we limit the data types we want to support and make a version of SCIRun ** we should remove unnecessary field classes like ITKImageField and ITKLatVolField ** we should minimize the number of mesh types we need * virtual functions will require a more uniform interface for Field/Mesh classes ==Move from configure/make to cmake== * cmake buys us a lot of portability because it works with local tools to replace configure/make operation * medium to large size project * would get us into the open software club * logical players to work on this are Dav and Josh * works with native tools to perform configure steps and make the program ==Reduce third-party library dependencies== * this project already underway, e.g., we are getting rid of Xerces and Xalan * Image Magik and mpeg are also things we can likely do without ** It would be great to maintain PNG support, as PPM does not export well to any tool most people are familiar with (--Jeroen) * we are behind on ITcl and it remains a problem that we have to change it to work with SCIRun threads * continue to check all third party libraries to see if we can remove dependencies ==Provide improved development environment== * documentation is key, including documented sample code, tutorial for module creation, type names and descriptions * how can we connect to threads at debug time and track bugs? * could we organize the code into more libraries that people link to so that changes in a single header file, for example, require complete new builds from all developers? * are there better tools? Tau, SGI has released open source version of CaseVision * some way to slow down and query a dataflow network? Or generate a log of all steps? * Do we have a set of symantic rules about data flow so that people have a better idea of what the system is doing and what we can expect it to do? Formal set of rules would help (documentation) ==Wrapping of ITK functionality== * not used a lot and some trouble to maintain * Darby will remove the wrapping == Memory management == * still using Steve's malloc code * goal of that is to manage allocations in a way that reduces fragmentation * this gets messy when there are different systems that link together * we should at least catch allocation errors and report them to user in a clear way == Module/Algorithm separation == * if we are redoing dynamic compilation, we just as well move the field algorithms out of the modules and into proper classes * this would remove all dynamically compiling code from GUI and into the Core libraries * allows for more flexible GUI building and cleaner separation of the code * makes code easier to reuse == Jeroen's List== Listed by priority: === Harmonize Mesh classes === We should harmonize the Mesh classes. Functions like get_center should use the basis functions, volume and interpolation schemes as well. Furthermore a lot of meshes are missing essential functions due to which dynamic compilation often fails, often calls with certain iterators are not handled. For instance TriSurfMesh is missing quite some functions, which is hindering progress in the collaborations. Completing them would solve already some problems. Then there are functions that were needed for the FEM, these can go and should be removed from TetVolMesh, HexVolMesh and TriSurfMesh. Likewise there are functions implemented in some mesh classes and not in others, we should try to remove these as much as possible. Update: We identified a series of functions that are missing and Micheal will be working on it. === Bug in Viewer === We should track down the synchronizarion errors in ViewSlices and Viewer. I was demonstrating Alex (one of Rob's students) SCIRun and we had really frequent crashes. Basically SCIRun gets into a situation where several threads are waiting for each other and the whole program hangs or the second situation is that I get a SIGBUS in the viewer/openGL thread. The errors occur more frequently when I have a different process running the background doing a lot of work. This will influence the multi threading and basically the order in which threads are served. Since this leads to problems my suspicion goes to a not-thread safe implementation of some data. This makes using BioImage really hard. I have been hearing and experiencing a lot of problems with this. Not only is the current version affected, 1.24.2 is suffering from this problem as well. Since a large focus is on visualization we need to fix this problem, as we need to be able to use SCIRun while we restructuring SCIRun, the last real stable version was 1.24.1 which is a really old one. Anyway in restructuring SCIRun, this problem needs to be solved anyway. Update: The developers are aware of this problem and are looking into its origin. All clues indeed seem to suggest a thread safety issue. McKay will try to track down this problem. === Algorithm/Module separation === Separating out algorithms from the the modules. We need this anyway when doing a clean up it will help with the dynamic compilation. So everything including the dynamic compilation part should go in a class where I can make a simple call to it just supplying handles to the Field/Matrix objects. The Algorithms should go to core/algorithms. This will mostly separate Core and Dataflow properly so people can use it for different interfaces. These libraries should be able to be initialized with the ProgressReporter so information to the user can go anywhere. We need not only exceptions to be thrown but as well warnings and remarks being forwarded, likewise progress for progress bars. Update: Drafted a quick outline on this: For the Algorithm/Module separation, I'd like it to be defined like this: I would like to have a template class that takes a ProgressReporter pointer (or Module pointer) and has simple inline functions build in to forward errors. For example: class AlgoLibrary { public: AlgoLibrary(ProgressReporter* pr=0); private: ProgressReporter *pr_; inline void error(std::string error); // forward error to ProgressReporter inline void warning(std::string error); // forward error to ProgressReporter inline void remark(std::string error); // forward error to ProgressReporter inline void compillationfailure(std::string error); // forward error to ProgressReporter } Then derived from that I would like to see a algorithmic library that is derived from this base class with field algorithms implemented as functions: class FieldAlgo : public AlgoLibrary { public: // constructor FieldAlgo(ProgressReporter* pr=0) : AlgoLibrary(pr) { }; // examples of function calls bool Unstructure(FieldHandle& input, FieldHandle& output); bool MergeFields(std::vector<FieldHandle>,FieldHandle& output, double tolerance); bool Transform(std::vector<FieldHandle>, FieldHandle& output, std::string function); ..... etc .... // Functions return false if an error ocured and the error is forwarded to the ProgressReporter // For regression testing // The idea is to be able to build small example meshes of each type dynamically for testing bool BuildExampleMesh(FieldHandle& output, std::string meshclass, std::string basistype); bool BuildExampleField(FieldHandle& output, std::string meshclass, std::string basistype, std::string datatype); bool CompareMeshes(FieldHandle& input1, FieldHandle& input2, bool& isequal) bool CompareFields(FieldHandle& input1, FieldHandle& input2, bool& isequal) } Similarly in the end it would be great to have a class called MatrixAlgo, DataIOAlgo, etc .... All these classes should go into Core/Algorithms The idea is to include simple functions for building example meshes. We can then loop over these functions and build example meshes and then feed them to each of the functions in the mesh. This way we could build a simple regression testing procedure as a stand alone program. When running the program it will try to dynamically compile algorithms for each mesh type, hereby testing whether everything compiles dynamically without the need of having to start the whole TCL infrastructure! Each function in the Algorithm class should assume it can receive any type of field class and it should report an error if it is not appropriate, by feeding it a range of example meshes we can effectively test whether these functions except every possible field. We could as well test the dynamic compilation more automatically, as the test program can be very simple program that does not need the SCIRun interface, but just uses FieldAlgo library to generate simple Example meshes, this way we could test whether dynamic code works and whether functions still result in the same mesh. === Reorganizing code and removing dead code === All objects that derive from DataType should go into Core/Datatypes, hence as well ColorMap and ColorMap2, when that is done Bundle can go into Core/Datatypes as well, making the code more organized. This will solve circular dependencies. Update: Micheal is working on this We could remove Core/Process , this code is unfinished and my code in SystemCall is more or less doing the same, Perhaps we should rename SystemCall to Process and then it is virtually the same but with a better name. Update: ? Some dead classes we should remove (old projects of mine) Core/ICom/sshagent (I am not using this), Core/Dataypes/NrrdString (concept has completely been removed), Core/Datatypes/NrrdScalar (I am not using concept anymore). Update: These have been removed. === Update Insight package === We should remove ITKImageField and ITKLatVolField and replace them with GenericField. Only the container class in GenericField should be overloaded with an image the rest is just dead weight, making SCIRun too complicated. Update: not yet working on this. We should make the fdata member in GenericField a handle to the container. This way fields can share data with other objects and it would prepare the system for memory blocks to be shared across objects. It would as well allow for the special ITK classes to be removed, as we could turn the Image class as well into a container class and make the sharing of data between ITK and SCIRun way easier. Update: We need to discuss this with the other SCIRun groups.... Both Josh and I feel that the ITK Package needs to be updated. We are going to sit down in January and figure out what needs to be done here. The issues above will be included in this process. === File Converrters === We should move all the file converters for NCRR center into SCIRun itself, we should not have too many stand alone programs that will only give the illusion that we are writing an operating system. If we could do this we could simplify code and move the converters into the Core of SCIRun. This will make it easier to find the proper pieces of the code. Update: Micheal is willing to give this a try. === Graphical output === We should think of removing ImageMagick and replace it by libPNG. Image Magick can become an optional package. If libPNG is there then the default output of the viewer should be .png and .ppm. Almost every graphics program can support png and it is a completely open format. So that would improve usability. Update: We will make png default output format in viewer and resolve the question of ImageMagick vs. LibPNG later, when we have the CMake system in place. === Further integration of Interpolation schemes === We should enforce proper interpolation schemes. Currently a lot of code for hexahedrals is just averaging the values on the nodes, as soon as the element is not cubic it is not proper. At least depending on how we define our interpolation scheme. For simplicity we should do this conform the basis functions. Hence functions like get_center and modules like ChangeFieldBasis should use the interpolation schemes. This makes SCIRun more consistent, which in the will simplify documentation. Update: We still need to work out details on where we need to implement this. === Restructuring BioPSE === In BioPSE some modules use units as properties and scale things accordingly. However only a fraction of the modules supports this and hence this can lead to unpleasant surprises. In some case you work with everything in cm and put units cm and the FEM module rescales the matrix to meters and in other cases you expect it to rescale and it does not. I would suggest removing this feature completely and just let the user enter the data in the proper units when he or she is loading the data. For instance in the Duke projects we do computation all in micrometers or centimeters and rescaling if I define a unit will make things only worse. Hence I would remove this functionality. Update: We agreed that modules should not do any conversions, but should warn when units do not match The other problem is that BioPSE is not widely used and hence the center is not visible (BioPSE and the center are often directly linked, I know we do way more, but it is not always visible). Hence the idea to revitalize the BioPSE package. Some thoughts on this: * BioPSE should contain core functionality for our center. It could for instance contain the Insight basic datatypes, the core of the matlab libraries, most file converters etc, I might move the String data types over to the BioPSE core. * Depending on the BioPSE core we have a couple of packages e.g. BioPSE_ImageProcessing, BioPSE_MeshGeneration, BioPSE_ModelGeneration, BioPSE_Simulation. Common components go in the core of the BioPSE package and hence for anyone to use any of the NCRR functionality will need to install the BioPSE package. This will help determine what the NCRR center is developing. Perhaps we should call packages like BioPSE_Matlab etc, to specifically spell out what the NCRR domain is. * This could make BioPSE the extension of the SCIRun Core we rely on in our developments. Hence the name SCIRun/BioPSE would get more meaning. * After we are done with improvements in the Core, we could thence better mark our development field Update: We at least agreed to think about how to organize our packages and we probably have a brainstrom session in January. === Pio and Dynamic compilation === One discussion point: Currently a lot of the higher order classes are not instantiated for the Pio system. If we are going to support these we might want to implement the suggested model for the dynamic compilation, predefine most of them and when a class is not found use dynamic compilation to build it. Though here we have the opposite problem as with the dynamic compilation. The amount of possible field classes is so large that the list of instantiations need be really large. Or we complete the list in cd_templates or we do this with dynamic compilation. Another problem is that looking up the symbols in the dynamic libraries takes a lot time. Some networks use most execute time to find dynamic libraries and dynamically compiled files. Update: I drafted some ideas on how to deal with the dynamic compilation: ====Phase-I==== I think the first step in simplifying this should be to combine the concepts of Pio and DynamicCompilation. Actually it is not simplifying it is just generalizing concepts we already have developed and have experience with and the combine them In Pio we have a list of all available makers and then choose the maker we need and in DynamicCompilation we have a function that dynamically creates a piece of code and then loads the maker. In my opinion the best way forward in phase-1 is to combine both concepts: * Create a list of algo_makers, similar to what we currently have for the field_types needed for Pio. * Add static constructors to all algorithms we have for dynamic compilation and make them register themselves in the list of available makers * In loading dynamic code : we first search the list of makers constructed from the static constructors (if it is there the algorithm is already available in the Core), then search on-the-fly libs with the generated filename, if nothing is found generate code that will do the job. This would improve performance as the Pio way of static constructors that copy the algorithm maker on a list will be faster than looking up symbols in a dynamically loaded file. * Add precompiled instantiators for often used version, e.g. like the cd_field_template files in Core/Datatypes for commonly used mesh types and data types (double, Vector, Tensor) * Make Pio use the same order (hence Pio then could dynamically compile if needed). This way we could have multiple distributions with the same source tree: For the windows distribution we add a compilation of all algorithms we think we need (we can do this by setting options in the makefile), for a developers version we skip over all of those and let Pio and Algorithms do their dynamic compilation (the system would be smart enough if it does not see a statically registered maker, then it needs to build the class), and combinations of both strategies depending on how much we want to be prebuild. I can imagine that I want to have a lean version (everything dynamically compiled) so I save memory. The cleanup in this case would come from the merger between Pio and Dynamic compilation. It would fix the problem we currently have that we do not have Pio support for all the higher order stuff. Having algorithms in a cd_template_fields construction will reduce the amount of files we have and as well some compiler overhead (not every individual algorithm needs to be linked against all libraries, looking at on-the-fly-libs that is currently a problem) and probaly will speed up executing of networks. ====Phase-II==== * Add an interpreter for dynamically compiled functions. We theoretically could keep a dynamic version (highly optimized for speed) and an interpreter version. If dynamic compilation is not available we should do it with the interpreter. * At the same time we might integrate the functionality I already built. I have functions like this that are more flexible. I already have modules that replace TransformData completely and are more flexible and have already a Algorithm/Module separation (not fully separated, but close to what I envision). My dynamically compiled system adds a lot of functions directly to the interface, functions like computing fractional_anisotropy, etc are already defined, similarly the framework I have allows for mixing data from Matrices and Fields, which I will need for scripting SCIRun (A project I like to work on next year). I don't have an interpreter function yet, but I'd like to add it the framework I already setup a while ago. Combining a newly to develop interpreter and the framework I already have and then adding it to the SCIRun-Core may be the way to go. ====Phase-III==== * We need to figure out what to do with algorithms that lead to too many combinations. For this we would need virtual functions. * Add virtual functions to SCIRun. Again we could have a speedy version using dynamic compilation and one that uses virtual functions. * We could see what the performance hit is and choose accordingly. For projects where windows compatibility is paramount we only implement functions virtually , where speed is paramount we do it through dynamic compilation, if we need both we implement both versions. * If the number of possible algorithms is less then lets say 50 or something we just precompile all of them for windows and solve it like that. If we get in a lot of combinations we need to rewrite the algorithm to use virtual functions or split it up in smaller components (sometimes an alternative for virtual function calls). This will reduce the amount of algorithms we need to rewrite. -- Jeroen CIBC:Core:Imaging 0 946 3080 2005-12-15T21:13:17Z Erikj 2 wikitext text/x-wiki ==Thoughts on Medical Imaging (MI) at the CIBC== --[[User:Cates|Cates]] 16:22, 19 Oct 2005 (MDT) ===The current state of open-source MI software.=== *There is a growing need for open source software and, more importantly, software standards in the MI community. Several groups (e.g. NAMIC, ISC) are pushing software standards for segmentation, registration, visualization and validation. *Standards for collaborative, open-source software development and testing are a very important part of this effort. CS and non-CS researchers, program managers and students are literally begging for reliable, tested, imaging tools that "just work out-of-the-box". *ITK is gaining acceptance as the standard for segmentation, registration, and certain types of image processing. VTK is already an accepted standard for visualization. Both toolkits have a robust software process and good support within the community. *Other toolkits are extending the functionality of ITK & VTK for more specific imaging and diagnostic medical applications. These toolkits have bought into the open-source process pioneered by NIH and the ITK project. ===What do other groups within the MI community do?=== *Many labs are adopting standard software "kits" such as the one promoted by NAMIC. *Non-CS labs use a mix of custom research software and commercially available tools. *CS labs often focus on toolkits, combining fltk, vtk, itk, tcl to produce small, tailored applications. New toolkits are appearing that add application-specific functionality to generic toolkits, e.g. MITK, IGSTK. ===What software tools are missing from the MI community?=== *Truly open-source visual programming environments. *Advanced visualization. *Interactive widgets. (VTK will soon set a very high bar.) ===What imaging capabilities do we currently have in SCIRun?=== *Limited support for image data. *Limited support for ITK algorithms. *Limited support for image visualization. *Limited support for image interaction (widgets). *Bottom line: There is no dedicated support for images in SCIRun. Thus far we have relied mostly on existing functionality and retro-fitted it to support image processing. ===Recommendations for the CIBC=== *More fully adopt ITK as our imaging platform. This requires a more serious commitment of resources than may have previously been made? *Participate more actively in the MI open-source movement. We have a significant presence in this community and could more fully exploit our influence. *Bring our software process up to the standards set by the major players in the community. Aspire to gaining the ISC and NAMIC "seal-of-approval", which potentially includes distribution of our code within a standard open-source MI software kit. *Consider re-engineering SCIRun as a collection of lightweight modules to better support agile development and deployment. *Think about alternatives to SCIRun. Are there combinations of other open-source toolkits we can consider that are cheaper and more flexible than SCIRun to use? *A visual programming environment for ITK could become the community open-source standard. *A high quality visualization application (BioImage-style) could become a community open-source standard. *A generic segmentation PowerApp could become a community open-source standard. For more specific ideas within SCIRun, see [[CIBC:Project:LevelSetPowerApp]] [[CIBC:Project:ImageViewer]] ===Related Links=== *[http://www.insightsoftwareconsortium.org Insight Software Consortium] *[http://www.na-mic.org/Wiki/index.php/SoftwareInventory NAMIC Kit] *[http://www.na-mic.org/Wiki/images/3/39/SoftwareProcess.pdf Software Process Notes] *[http://www.itk.org ITK] CIBC:Project:ImageViewer 0 947 964 2005-12-15T21:14:22Z Erikj 2 wikitext text/x-wiki ===Motivation=== First, see the definitions of images and labeled images [[CIBC:LabeledImages | here]]. When visualizing image data it is important to present the data in as raw a form as possible so as not to obscure information content or introduce erroneous information content. Typically this means displaying higher dimensional data in 2D slices on a grid whose spacing matches that of the image data, with no filtering, interpolation, or other transformations applied. When image data has multiple channels (vector-valued data points), each channel may be displayed separately or colored using an appropriate map for the data (e.g. rgb pixels). For common imaging tasks such as segmentation and registration, it is critical that a user be able to visualize image data in this way. ===SCIRun ImageViewer Module=== For SCIRun I propose a new visualization module that incorporates the above ideas. It should have the following list of features. *Presents image data of 2 and higher dimensions in successive 2D slices. The slice domain defaults to the first two fastest-increasing axes in the data, with the ability to permute the choice of axes as needed. Reslicing the image along a new axis should not involve transforming or otherwise interpolating the data. *The user should be able to toggle between views of the data in isotropic pixel-space and isotropic real space. The pixel-space display is the most raw view, where no interpolation of the data is necessary other than nearest-neighbor interpolation when resizing the display window (zooming). The real-space display may require resampling of exactly one of the display axes to match the spacing of the other display axis. This resampling should use nearest neighbor interpolation, with the option for linear interpolation if desired. *Navigational controls to allow stepping forward and backward through slices of the data, reslicing, and zooming in and out of regions of interest. *Image information such as image extent, spacing, and view orientation should be displayed for the user. *The usual SCIRun support for color mapping the data. *Functionality for overlaying [[CIBC:LabeledImages | labeled image]] masks (segmentations) on the original image data. *Interaction should include: probing image values and locations with the mouse, drawing labeled images directly into the display window. Additional bells and whistles to consider: *Navigational controls that orient the user to the slice location within the higher dimensional image domain. ===Example Images=== The following images are taken from the UNC image viewer application in common use in the ITK community. They illustrate something akin to what I have in mind for the SCIRun viewer. The data presented on the overlay is information about the image size and spacing. The data at the lower-right corner of the display shows the position of the mouse and the pixel value at that position. [[Image:UNCImageViewer1.jpg|thumbnail|100px]] [[Image:UNCImageViewer2.jpg|thumbnail|100px]] This next example shows a labeled region in green overlaid on top of the original image. This green section could be the result of an automatic segmentation, a hand-drawn segmentation, or some combination of both. [[Image:OverlayExample.jpg|thumbnail|100px]] File:UNCImageViewer1.jpg 6 948 3082 2005-12-15T21:16:45Z Erikj 2 The ImageViewer application from UNC Chapel Hill wikitext text/x-wiki The ImageViewer application from UNC Chapel Hill File:UNCImageViewer2.jpg 6 949 3083 2005-12-15T21:22:35Z Erikj 2 The ImageViewer application from UNC Chapel Hill. wikitext text/x-wiki The ImageViewer application from UNC Chapel Hill. File:OverlayExample.jpg 6 950 3084 2005-12-15T21:23:06Z Erikj 2 Example of a green, semi-transparent overlay of the segmentation of part of a bone on top of the original ct image slice. wikitext text/x-wiki Example of a green, semi-transparent overlay of the segmentation of part of a bone on top of the original ct image slice. CIBC:LabeledImages 0 951 3085 2005-12-15T21:26:05Z Erikj 2 wikitext text/x-wiki ===What is an Image?=== Traditionally when folks talk about images, they are referring to a collection of samples over a strictly 2D domain. Samples over 3D domains are called "volumes". For our purposes, however, we want to think of images of arbitrary dimensions: a volume is simply a 3D image, a 4D image is simply a sequence (often time) of 3D images; "voxels" are just 3D pixels. The definition of an image therefore becomes: a collection of data samples (scalar- or vector-valued) over a regularly-spaced grid of points in a domain of arbitrary dimensionality. Thinking about image data in these terms within SCIRun is important in order to correctly interface with imaging algorithms in ITK. The trend in imaging is toward higher dimensional datasets and we should be ready to support them. ===What is a Labeled Image?=== To properly support image segmentation in SCIRun, we need some basic functionality for creating and manipulating labeled images (a.k.a. annotated images). Image segmentation can be thought of as a process of identifying points in an image domain that are inside an object of interest: for example, marking all of the pixel locations whose data that suggests the presence of bone, a certain tissue type, the boundary of the heart, etc. The simplest way to represent such a collection of discrete points is often just a binary mask in a separate image whose domain and sample spacing exactly matches that of the original image data. This binary mask, together with its corresponding image data, is a what I'm calling a labeled image. When regions of interest in an image cannot simultaneously occupy the same points in space (e.g. heart tissue cannot exist inside rib bones), multiple binary masks may be stored in the same labeled image by giving each region of interest a different label value (the heart gets label 1, the ribs get label 2). In addition to binary-style labeled images, we should also support so-called "fuzzy" segmentations, that is, image masks where values at a point indicate the statistical likelihood that the given pixel belongs inside a given object. ===SCIRun Labeled Image Class=== I propose a new class, or adoption of an existing class, for use as a labeled image class in SCIRun that supports segmentation tasks with the following features. *Supports integer types (unsigned long?) for binary labeling and a floating point type for statistical labeling. *Supports run-length encoding? *Perhaps this class can be an abstract interface to existing SCIRun data containers? CIBC:Collab:Cappechi 0 952 3086 2005-12-15T21:29:28Z Erikj 2 wikitext text/x-wiki ==Project Description== ==Project Status== ==Software Development== [[CIBC:Project:ShapeAnalysisTools | Shape Analysis Tools]] ==Technical Requirements== Segmentation Shape analysis === Algorithms === Shape analysis Segmentation algorithms: Watersheds, ===Program control=== ===Data representation=== ===User interface=== CIBC:Project:ShapeAnalysisTools 0 953 3087 2005-12-15T21:29:48Z Erikj 2 wikitext text/x-wiki ===Status=== Tom is testing Martin Styner's (UNC) shape analysis framework in ITK. Tom has Martin's tools built and running and Josh has converted all of Lindsey's segmentations to nrrds for Tom to begin testing the shape tools. It looks like we have a very nice collection of data: multiple segmentations of at least 6 different mouse bones. 11/14/05 We are currently experimenting with ways to post process the segmentations in order to fill holes, remove handles, etc. so that they will be in a form suitable for the shape analysis. CIBC:Collab:NCMIR 0 954 3088 2005-12-15T21:30:26Z Erikj 2 wikitext text/x-wiki ==Project Description== ==Project Status== In Spring 05 a SCI application was delivered to NCMIR (after about 9 months of development), but it does not run reliably enough to be tested. Notes from phone meeting with Mona at NCMIR from 11/08/05 are here [[CIBC:Collab:MeetingNotes11.08.05]] ==Software Development== [[CIBC:Project:LevelSetPowerApp | Level-Set Segmentation Powerapp]] ==Technical Requirements== === What NCMIR needs === - Interact in 2D by painting, putting down primitives etc. - Load in very large volume files and view/interact either slices at a time or entire volume - Visualize 2D/3D output (curves, surfaces, simple volume rendering) - Document workflow, save state, etc. - Try different options within a single workflow. E.g. alternate between preprocessing alternatives - Move results of segmentation from one slice to another: decide on each slice which initialization to use - Stand-alone application that runs reliably ===What we need to give them what they need=== - Consistent, reliable memory handling - Parallelism handled by the pipeline (for simple cases) - Conditionals within pipeline - Ability to construct pipelines using native data types of toolkits - 2D/3D images and 2D/3D interaction tools - Reliable compiling and running across several prominent architectures - Ability to exclude large numbers of buggy, unnecessary modules from the build/run CIBC:Collab:MeetingNotes11.08.05 0 955 3089 2005-12-15T21:31:20Z Erikj 2 wikitext text/x-wiki Josh met with Mona from the Ellisman lab by phone on Nov. 08, 2005. These are Josh's notes summarizing the discussion. The NCMIR group has several tools that they use for segmentation. Primarily they use a system called Xbox trace, which was written many years ago. Mona also has an application she has written called Jinx. Both Xbox trace and Jinx are hand contouring tools. In addition to these hand contouring tools, they also use Analyze and assorted other software packages. Mona will send me links to Jinx and Xbox trace so that I can try them out. The NCMIR software was designed based on feedback from their users: the focus is on the interface and ease of use, rather than advanced features. The group would like to incorporate automatic segmentation algorithms into their software--they have some post-doc types there working on image processing algorithms--but they are wary of trying to add too many features into their existing software packages. They will probably design new tools from scratch when they begin to work with automatic segmentations. They are working on a watershed segmentation method and some kind of fuzzy classifier method? One of the major benefits of collaboration with the NCMIR group is that we have access to their user community, which is interested in trying new software tools and segmentation/visualization algorithms--they know that they are expected to be guinea pigs for new ideas and we can ship experimental stuff their way to try. The main group of users are biologists, sometimes staff and sometimes students. Typically, the same person that acquires the images from the microscope will also do the image segmentation. The major problems that their lab has had with the SCIRun power app is that it always locks up after processing 6-10 slices. The other major thing that they do not like about the power app is that it requires that the segmentation be done in a linear, pipeline processing manner. memory issues Darby and/or Dave has an account on their machines that we can use to install/deliver new software or software updates. They have several linux boxes with several gigabytes of memory. When they have tried SCIRun in the past, they have simply run it from the build that we provided and maintatined for them and havee not tried to install the system themselves. Mona seemed interested that we support Macs. The lab also has a few Sun systems. I chatted with Mona about the user interfaces that they prefer. She has done a couple of surveys of users to try to identify what approaches are best for them. She indicated that the "photoshop" style interface for a segmentation app that I pitched to her would be popular with her users. It sounds like their tools are built using this model: simple image viewer interface with a set of tools to do hand contouring. It seems like three dimensional segmentation/visualization is not something they have thought much about. The idea of a 3D segmentation app could be interesting. Mona indicated that a multi-scale approach to image segmentation would be well received. Other ideas from the meeting: Mona suggested that their users might have some ideas for useful widgets for image segmentation, for example, she suggested a cylinder widget for use in segmenting structures in 3d. CIBC:Collab:Henriquez 0 956 3090 2005-12-15T21:32:22Z Erikj 2 wikitext text/x-wiki == Project Description == This project aims at simulating the effectiveness of DNA transport into a cell by means of eletrophoresus. A key issue in gene therapy is to be able to transport DNA molecules into the cell. One way to accomplish this is by application of a strong electric field and force holes in the cell membrane. These holes form when membranes are subjected to large electric field. As the electric field strength is not homogeneous in tissue, the first step of the project aims at computing the electric field in a tissue. Moreover as holes form in the membrane the electric field changes and hence this is a dynamic simulation. == Project Status == Exploring what components are needed for this project. == Project Progress/Development == The first milestone in this project will to be able to simulate the strength of the electrical field in tissue. This part of the project will coincide with the other project currently going on in collaboration with Craig Henriquez. In the latter project we are developing a model at tissue level for studying propagation in various types of cardiac tissue. Hence the current effort is at building tissue models and software for doing this. What has been done: (1) Adapted and rewrote the CardioWave software from Duke to be able to simulate tissue at a cellular level, modified the way volumes and areas are accounted for, adapted the matrix solving process, added a whole new layer in the software to do these calculations in parallel on a cluster. (2) Tested the CardioWave software on the NCRR cluster. CardioWave runs here, but runs far less efficient then on the SGI machines. There is a big performance gap until we go to the real big models. Currently a simple simulation of about 20 cells takes about 16 hours on 10 processors on Muse. (3) Created software to generate FEM models based on tissue structure. CardioWave needs a lot different model components and these are currently generated by the software. (4) Tested the software for simple cell models and simulated a series of ischemia cases, which surprisingly showed that a lot of the conduction slowing observed in ischemia can be attributed to tissue structure changes, which goes against current theory. (writing a paper about it now) --Jeroen == Software development == [[CIBC:Project:CardioWaveInterface | CardioWave Interface]] == Technical Requirements for PSE== ===Program Infrastructure=== * Resource (Memory/CPU) management ** Working interactively with large datasets requires that data can be stored in memory and/or disk. ** Dividing algorithms into small reusable components will require a lot of memory if data is stored in memory to keep interactivity alive. ** Optimization between using a lot of memory and being fast or more memory and being slow. For example for a small data set you want to store eigenvalues of a tensor, for bigger datasets keeping intermediate results will cause a lot of swapping memory and could lead to running out of addressable memory space. ** Optimize dataflow, what is execute and in which order to minimize computation time and memory needs. * Component model: Algorithms should be fairly general and exchangable. The data quality of input varies and the goals of the simulations vary as well: hence a component model would be required, with a user interface in which components can be interchanged/omitted/added. * Automation: Automation should be available from the interface. **Often reoccuring scenarios are doing parameter sweeps in different domains, trying different segmenation parameters, using different membrane parameters. ** Most software uses a simple list of parameters to guide the process. A similar concept would make it easier to interact with other software. For instance CardioWave uses a textfile with parameters, most Matlab oriented software in this project uses similar parameter lists. ** Parameters to controlling application: filenames, scalar values (vector and tensor value (e.g. conductivities)) and strings (e.g. membrane models) * External Application Interface: A mechanism to run simulations at in a different process at a different computer. ** To setup a simulation the model should be able to be export in the fileformat of the simulator ** Simulation software often requires MPI, stability and hence should run as a separate program. Since simulations in the project take time interaction is not stricly needed. ** The mechanism supported should be reliable and should support to run a simulation without crashing (simulations can take days to complete) * Monitoring simulations: Simulations results should be written as files in a directory (that way we keep a clear record of results). When the simulation directory is mounted SCIRun should have access to it and use it to dynamically update its display. * Annotation: We should have the ability to gather parameters in a simple text document (or something similar) to annotate simulations. Being able to figure out what kind of parameters were used in a simulation is valuable. ** Annotation should be preferably be generated automatically or should be scriptable, this will ease the task of the scientist. ** Keeping a log of operations performed. * Algorithmic separation: ** Store algorithms in libraries which have standard options for error reporting and informing the user (abstract methods that can be separated from actual GUI, giving feedback e.g. warnings etc to the user is important) ** When we have figured out a way of image to model that works for a lot of cases, one wants to be able to quickly rewrite the component GUI program to a full stand-alone program. ** When having a combination of mesh generation tools that work, one may consider a program that can be called under Matlab/Mathematica without GUI for certain basic tasks. === Algorithms === * Segmentation filter: A simple filter that requires that segmented areas are fully linked volumes (islands need to be removed) and one volume should remain. * Segmentation algorithms: flood fill, watershed, etc.... * Interpolation algorithms: ** Based on a segementation/selection mask and a trustworthyness index one often wants to interpolate over bad data. E.g. I have a segmentation of anatomy of the heart and diffusion tensor which are not to be trusted next to a pool of blood, an air/tissue interface etc, then one wants to interpolate the data based on the reliable data. ** Laplacian interpolation (Are there better algorithms for doing interpolation of diffusion tensors?) * Surface Extraction Algorithms: A common notion is to go from a pixel segmented image to a triangulated surface. One requirement would be able to control the density of the grid of the surface, as one often wants a grid less dense then the pixelated surface. And one wants a smoother outer surface. * Meshing Algorithms: After having created a surface mesh one wants to fill the spaces with tetrahedra. Methods like advancing fronts are probably best for bioelectric problems, where a precise representation of the surface is not necessary. It would be nice to have our own algorithms or an open source development. This is currently a big gap in the pipeline. It would be great to have basic algorithms within SCIRun and bridges to other software packages for more advanced need. * Surface smoothing algorithms: It would be great if we could smooth extracted surfaces before use in the models. * Mesh separation code: For the membrane modeling, a mesh needs to be decoupled into discrete domains. This requires adding nodes and building internal interfaces in the mesh, which represent the membrane barriers. The idea is to have a segmented image in intra and extracellular space. When the segmentation is different an interface needs to be created. * Surface extraction methods: based on a segmented image one wants the surface that surrounds region 1, or that is in between region 1 and 2, etc. * Book keeping algorithms when merging geometries: Bidomain regions of a model require regular spacing, whereas other regions require only smooth transititions between element size. Hence geometries are constructed seperately and need to be merged, keeping track of which node is which node is essential. * Extracting node numbers in mesh. Often node numbers are needed to indicate where a model stimulated, where a reference electrode is located etc. * Bandwidth reduction/bookkeeping algorithms: To optimize the matrix computation for MPI, a smaller bandwidth often means less communication. Algorithms to explore: CutHill-McKee, sorting by node location etc. When rearranging nodes, indices and other entities need to be remapped to new node numbers as well. * Bounding curve selection tools: Based on a segmented image, one wants to extract a curve surrounding the segmented area to use in the meshing procedure * Algorithm for creating a triangular mesh out of a series of segmented curves * Resampling algorithms: e.g. if one has a curve one wants to fit a spline and resample the surface. If we have a similar algorithm for a surface that would be great. * FE stiffness matrix generation code. Similar algorithms as in the current BioPSE package. * Mesh Templates/Mesh warping **Taking simple geometric objects and warp them into a more complicated shape to for instance define a ischemic region. * Mapping mathematical functions on a mesh: Often data from images is not enough to build a model and one needs to define a geometrical function on top of the mesh for a certain parameter. * Distance maps: Often parameters are defined depending on the distance to the edge of the object or depending on the distance to a certain point. ** One can think of M-cells/ Epicardial cells etc, they can be defined is being a certain distance from a certain boundary. * Algorithms to calculate effective area/volume on a node to node basis of the amount of volume in unstructured mesh that can be assigned to that node. ===Data Representation=== * Import/Export of "simple" data formats: text files (for example matrices in rows and columns), data blocks of a certain data type with a small header file preferably in ascii (like nrrd). Usage of the current SCIRun native file formats requires linking against a lot of C++ classes and SCIRun infrastructure, which is an obstacle in linking against other programs. * Import/Export of parts of datasets (Simulation data can run in Gbytes of data and storing all in memory becomes problematic) * Support for multiple data entities attached to one mesh ** Currently SCIRun allows only one type of data on a mesh, hence a lot of duplication of pipelines mark the current networks. Models seldom have one entity attached to a mesh often one needs to think of conductivity tensors, membrane types, tissue types (segmentation), etc. * Unstructured meshes: Hexhedral/Tetrahedral/Quadrilateral/Triangular elements: Full support for both hexahedral and tetrahedral elements ranging from segmentation to stiffness matrix generation. * Structured meshes: MRI data/confocal data often is a regular multidimension matrix. * Automation: representation of filenames, scalar/vector/tensor parameters is need for automating networks. * Bundling projects: Models often consist of a collection of matrices, meshes, and parameters, bundling everything into one file/directory is useful as an organizational tool. Being able to systematically organize data of current and past simulations is something that makes life easier and will lead to a higher degree of automation and more productive scientists. * Support for a dataset spread over multiple files and selecting part of the data. ** The newest version of CarioWave regenerates multiple files while the simulation is running. Examining a few files will allow the user to look at certain timespans of the data. * Support for time depend data ** time scale can be irregular hence we need a kind of lookup system for actual time ** supporting time with in the geometrical objects * Support for irregular spaced data ** An example of irregular spaced data is for example adaptive time refinement, each frame of data still has the same amount off data but it is spaced irregular in time with the timestep between data being irregular. ** This would require to record the spacing in every direction but would still allow for a regular matrix storage of the data. ===User Interface=== * Comparison mode: One of the most useful features in SCIRun/Map3d is the dual/triple display mode to compare different datasets in displays that are locked. If we keep the SCIRun platform it would be useful to extend this to BioImage/BioTensor. What one wants to do is comparisons between datasets. * 2D/3D widgets for marking parts of a mesh: ** Marking of locations (constraint to volume or surface or unconstraint floating in 3D volume) ** labeling widgets, e.g. different colors for stimulus electrodes and reference electrodes, adding text to widgets. * 2D Image viewer: ** Draw/compute segmentation: automated segmentation with options for user to override segmentation made ** Overlay of different segmentations/ properties computed on the mesh/ ** Annotation of slice, e.g. slice number, slice size, slice normal in physical space etc. ** Synchronized displays (e.g. sync slice number or actual z postion etc.) * 3D data viewer: ** Transparant surfaces ** The option to switch on and off surfaces/meshes (e.g. as currently in SCIRun) ** Synchronized displays (for comparison mode) ** Display of legend, model parameters used etc in figure. * Graph viewer: ** Options to draw matlab like figures, with extensive options to set units, titles, grids, scales, etc. ** Draw time curves of data: being able to get time signals and display them in a graph ** Annotation of graph viewer: title, legend, axis names/numbers/units. ** Multiple lines in one graph with different colors ** Irregularly spaced x-axis for time data: the project probably requires adaptive time steps and thus sampling is not regular ** The interface should allow for creating images that can be used in publications: being able to choose amount of colors, write decent title headers, have possibility to select resolution, being able to added axis, adding symbols, being able to add legends. CIBC:Project:CardioWaveInterface 0 957 3091 2005-12-15T21:32:51Z Erikj 2 wikitext text/x-wiki == CardioWave Interface == == Data organization == One of the key questions is how to organize the data. A model is more then a image with annotation. Hence a new representation is needed to generate more complicated models. The idea is to use Bundles of Strings, Fields, and Matrices to represent a model. The reason for this is that the scheme is simplistic enough to be general, but it could theoretically be suitable to more modeling projects. As bundles can be inserted into another bundle they can form complex hierarchies, they should hopefully provide a flexible enough platform for building models. Currently a series of modules have been generated in the Core of SCIRun to support this development. == Recent developments == (1) The Cardiowave package was split into two packages: ModelCreation and CardioWave. The reason for splitting the package is that many of the tools are more general and can possible be reused in BioPSE or in the CIBC center. The goal of this package is to provide general tools for module building. Currently the modules that were generated for this project live in this package, but they can be moved to other places if needed (any suggestions?) == To Do == (1) Clean up CardioWave package. All more general modules should go to the ModelCreation package or to the SCIRun core. The CardioWave package should only contain specific modules that communicate with CardioWave. (2) Create a more general makefile for CardioWave, it needs dynamic compilation and we currently need to adapt it for each flavour of MPI and for each platform. The makefile of Duke does not work on any of our platforms. (3) Design final interface. Pieces have been generated, but no coherent module structure is present. (4) Create code to generate surfaces inside a mesh at which we representa membrane. At membranes one has an intrracellular and extracellular node, hence one needs to split a mesh into two pieces while keeping all the nodes. In this case nodes at the boundaries need to be doubled. This operation is the opposite of GatherFields. The module works by using the data at the elements to see how the mesh needs to be split in submeshes. Each submesh does not share any nodes but still contains the same elements and still fills the same space. The goal of this module is to use it to generate intra and extracellular meshes that fit together like a jigsaw puzzle. This module could take a segmented confocal image and split every segmented area into its own mesh. Lateron one can find which faces are at the border and one can link them face by face and connect them with a membrane model. (5) Add code to figure out which faces link to neighboring faces in a mesh that has been split in discrete compartments. Probably code that is generated in this module can be used to fix GatherFields as well. This requires code to build an effective algorithm to find nodes that are close by (within a certain radius). (6) Test module that computes the effective area/volume of the adjoining elements. To compute current strengths at nodes one needs to assign a volume or area to the node. This can be done based on the mesh by adding the effective area or volume of each adjoining element. This currently only works for linear elements. (7) Upgrade CardioWave packages to use Higher Order Basis functions field classes. CIBC:Collab:McVeigh 0 958 3092 2005-12-15T21:34:27Z Erikj 2 wikitext text/x-wiki == Project Description == The overall goal of Dr. McVeigh's research is to develop a computational model to predict the susceptibility to fatal ventricular arrhythmia. Dr. McVeigh and his colleagues have developed methods to measure electrical, mechanical, and geometrical properties of normal and abnormal myocardial tissue with unprecedented resolution in the working heart, both in patient and experimental studies. Dr. McVeigh's group is studying the interplay between these properties and their relative roles in generating the substrate for ventricular arrhythmia. Their ultimate goal is to understand the propensity for the onset of fatal ventricular arrhythmia and to predict which patients are at high risk for sudden death. The '''first scientific aim''' of this research is to test the hypothesis that regions of abnormal geometry and mechanics in heartsfollowing myocardial infarction (MI) contribute to reentry circuits of ventricular tachycardia (VT). Dr. McVeigh and his group will examine electromechanical maps from canine hearts during normal HIS-Purkinje conduction to study the association between electrophysiological parameters and the magnitude and timing of myocardial strains with particular attention to the MI border zone. Subsequently, they will induce reentry VT by programmed stimulation with up to three extra stimuli and acquire electromechanical data during the resulting arrhythmias. By registering the electrical, geometrical, and mechanical data, they will be able to dissect the contributions of the geometry and mechanics to propensity for ventricular arrhythmia. Dr. McVeigh's group anticipates that the reentry circuit will appear in the peri-infarct zone (both the infarct border zone and within the infarct), where they expect the heterogeneity of the conduction properties to be greatest. They will also use diffusion weighted MRI and diffusion tensor imaging to determine the predominant fiber directions in the infarct and noninfarct regions, then to determine the fiber stress and strain. This information will allow them to evaluate whether transmural heterogeneity of fiber stress and strain in the peri-infarct zone may generate foci for stretch-activated ventricular ectopy to initiate VT. Thus they can test the hypothesis that regions of abnormal geometry and mechanics contribute to reentry circuits of ventricular arrhythmia. The '''second scientific aim''' is to develop a computational model to predict the propensity to ventricular arrhythmia in post-MI subjects. Out of the electrical, geometrical and mechanical data acquired in the first aim, members of Dr. McVeigh's group will identify specific parameters that could contribute to post-MI VT. Potential geometrical parameters include the infarct size, location, distribution, and the thickness of surviving epicardial rim. Candidates for mechanical parameters include the magnitude of abnormal stretch and the size, location, and distribution of the region of abnormal stretch. Based on these parameters, they will develop a bidomain computational model that will predict electrical behaviors and the susceptibility to post-MI VT from geometrical and mechanical data. == Project Status == Exploring what components are needed for this project. == Project Progress/Development == Working on registration of various MRI images both CINE and Anatomical aimed at building a full heart model with a torso surrounding it. While in DC I helped Bruce to construct a torso mesh that surrounds the auckland heart, we prototyped a few meshing algorithms in Matlab and worked on registration techniques to align a predefined model of the heart to the correct position in the heart. --Jeroen == Software development == == Technical Requirements for PSE== ===Program Infrastructure=== * Resource (Memory/CPU) management ** Working interactively with large datasets requires that data can be stored in memory and/or disk. ** Dividing algorithms into small reusable components will require a lot of memory if data is stored in memory to keep interactivity alive. ** Optimization between using a lot of memory and being fast or more memory and being slow. For example for a small data set you want to store eigenvalues of a tensor, for bigger datasets keeping intermediate results will cause a lot of swapping memory and could lead to running out of addressable memory space. ** Optimize dataflow, what is execute and in which order to minimize computation time and memory needs. * Component model: Algorithms should be fairly general and exchangable. The data quality of input varies and the goals of the simulations vary as well: hence a component model would be required, with a user interface in which components can be interchanged/omitted/added. * Automation: Automation should be available from the interface. **Often reoccuring scenarios are doing parameter sweeps in different domains, trying different segmenation parameters, using different membrane parameters. ** Most software uses a simple list of parameters to guide the process. A similar concept would make it easier to interact with other software. For instance CardioWave uses a textfile with parameters, most Matlab oriented software in this project uses similar parameter lists. ** Parameters to controlling application: filenames, scalar values (vector and tensor value (e.g. conductivities)) and strings (e.g. membrane models) * External Application Interface: A mechanism to run simulations at in a different process at a different computer. ** To setup a simulation the model should be able to be export in the fileformat of the simulator ** Simulation software often requires MPI, stability and hence should run as a separate program. Since simulations in the project take time interaction is not stricly needed. ** The mechanism supported should be reliable and should support to run a simulation without crashing (simulations can take days to complete) * Monitoring simulations: Simulations results should be written as files in a directory (that way we keep a clear record of results). When the simulation directory is mounted SCIRun should have access to it and use it to dynamically update its display. * Annotation: We should have the ability to gather parameters in a simple text document (or something similar) to annotate simulations. Being able to figure out what kind of parameters were used in a simulation is valuable. ** Annotation should be preferably be generated automatically or should be scriptable, this will ease the task of the scientist. ** Keeping a log of operations performed. * Algorithmic separation: ** Store algorithms in libraries which have standard options for error reporting and informing the user (abstract methods that can be separated from actual GUI, giving feedback e.g. warnings etc to the user is important) ** When we have figured out a way of image to model that works for a lot of cases, one wants to be able to quickly rewrite the component GUI program to a full stand-alone program. ** When having a combination of mesh generation tools that work, one may consider a program that can be called under Matlab/Mathematica without GUI for certain basic tasks. === Algorithms === * Surface Extraction Algorithms: A common notion is to go from a pixel segmented image to a triangulated surface. One requirement would be able to control the density of the grid of the surface, as one often wants a grid less dense then the pixelated surface. And one wants a smoother outer surface. * Meshing Algorithms: After having created a surface mesh one wants to fill the spaces with tetrahedra. Methods like advancing fronts are probably best for bioelectric problems, where a precise representation of the surface is not necessary. It would be nice to have our own algorithms or an open source development. This is currently a big gap in the pipeline. It would be great to have basic algorithms within SCIRun and bridges to other software packages for more advanced need. * Surface smoothing algorithms: It would be great if we could smooth extracted surfaces before use in the models. * Surface extraction methods: based on a segmented image one wants the surface that surrounds region 1, or that is in between region 1 and 2, etc. * Book keeping algorithms when merging geometries: Bidomain regions of a model require regular spacing, whereas other regions require only smooth transititions between element size. Hence geometries are constructed seperately and need to be merged, keeping track of which node is which node is essential. * Extracting node numbers in mesh. Often node numbers are needed to indicate where a model stimulated, where a reference electrode is located etc. * Bounding curve selection tools: Based on a segmented image, one wants to extract a curve surrounding the segmented area to use in the meshing procedure * Algorithm for creating a triangular mesh out of a series of segmented curves * Resampling algorithms: e.g. if one has a curve one wants to fit a spline and resample the surface. If we have a similar algorithm for a surface that would be great. * FE stiffness matrix generation code. Similar algorithms as in the current BioPSE package. * Mesh Templates/Mesh warping **Taking simple geometric objects and warp them into a more complicated shape to for instance define a ischemic region. * Mapping mathematical functions on a mesh: Often data from images is not enough to build a model and one needs to define a geometrical function on top of the mesh for a certain parameter. * Distance maps: Often parameters are defined depending on the distance to the edge of the object or depending on the distance to a certain point. ** One can think of M-cells/ Epicardial cells etc, they can be defined is being a certain distance from a certain boundary. * Implementation of more matrix solvers: We currently use BiCGstab in the simulation tools. (One could think of Algebraic MultiGrid as well) * Implementation of PETSc/MPI matrix solvers to solve large matrix problem efficiently with preconditioners in parallel. (SCIRun has only ported the single processor versions.) * Implementation of matrix solvers that solve multiple right handsides at the same time. * Segmentation algorithms: flood fill, watershed, etc.... ===Data Representation=== * Import/Export of "simple" data formats: text files (for example matrices in rows and columns), data blocks of a certain data type with a small header file preferably in ascii (like nrrd). Usage of the current SCIRun native file formats requires linking against a lot of C++ classes and SCIRun infrastructure, which is an obstacle in linking against other programs. * Import/Export of parts of datasets (Simulation data can run in Gbytes of data and storing all in memory becomes problematic) * Support for multiple data entities attached to one mesh ** Currently SCIRun allows only one type of data on a mesh, hence a lot of duplication of pipelines mark the current networks. Models seldom have one entity attached to a mesh often one needs to think of conductivity tensors, membrane types, tissue types (segmentation), etc. * Unstructured meshes: Hexhedral/Tetrahedral/Quadrilateral/Triangular elements: Full support for both hexahedral and tetrahedral elements ranging from segmentation to stiffness matrix generation. * Structured meshes: MRI data often is a regular multidimension matrix. * Automation: representation of filenames, scalar/vector/tensor parameters is need for automating networks. * Bundling projects: Models often consist of a collection of matrices, meshes, and parameters, bundling everything into one file/directory is useful as an organizational tool. Being able to systematically organize data of current and past simulations is something that makes life easier and will lead to a higher degree of automation and more productive scientists. * Support use of degenerate hexahedral meshes * Support for time dependent data ** time scale can be irregular hence we need a kind of lookup system for actual time ** supporting time with in the geometrical objects ** support for time-dependent geometries * Support for Dicom format of data, support of reading location of MRI scan to combine multiple scans into one image (orientation data is stored in these objects) ===User Interface=== * Comparison mode: One of the most useful features in SCIRun/Map3d is the dual/triple display mode to compare different datasets in displays that are locked. If we keep the SCIRun platform it would be useful to extend this to BioImage/BioTensor. What one wants to do is comparisons between datasets. * 2D/3D widgets for marking parts of a mesh: ** Marking of locations (constraint to volume or surface or unconstraint floating in 3D volume) ** labeling widgets, e.g. different colors for stimulus electrodes and reference electrodes, adding text to widgets. * 2D Image viewer: ** Draw/compute segmentation: automated segmentation with options for user to override segmentation made ** Overlay of different segmentations/ properties computed on the mesh/ ** Annotation of slice, e.g. slice number, slice size, slice normal in physical space etc. ** Synchronized displays (e.g. sync slice number or actual z postion etc.) * 3D data viewer: ** Transparant surfaces ** The option to switch on and off surfaces/meshes (e.g. as currently in SCIRun) ** Synchronized displays (for comparison mode) ** Display of legend, model parameters used etc in figure. ** Multimodel visualization of scalar, vector, and tensor quantitites ** Visualization on time-dependent geometries * Graph viewer: ** Options to draw matlab like figures, with extensive options to set units, titles, grids, scales, etc. ** Draw time curves of data: being able to get time signals and display them in a graph ** Annotation of graph viewer: title, legend, axis names/numbers/units. ** Multiple lines in one graph with different colors ** Irregularly spaced x-axis for time data: the project probably requires adaptive time steps and thus sampling is not regular ** The interface should allow for creating images that can be used in publications: being able to choose amount of colors, write decent title headers, have possibility to select resolution, being able to added axis, adding symbols, being able to add legends. CIBC:Collab:MakeigWorrel 0 959 3093 2005-12-15T21:35:17Z Erikj 2 wikitext text/x-wiki == Project Description == The goal of this project is to support research that aims to bring MEG/EEG source localization into the epilepsy clinic. By evaluating and localizing the source of epileptic seizures one hopes the surgical procedures in which brain tissue is removed in order to stop the seizures. The project aims at using independ component analysis to split the temporal signal into independend signals and then apply a source localization algorithm to find a dipolar source in the brain. == Project Status == Exploring what components are needed for this project. == Project Progress/Development == Talked with Carsten on the modeling of the head and tried to figure out what the NeuroFEM/Curry software he currently uses cannot do in terms of modeling. It seems they have problems with modeling a set of intercranial electrodes that are mounted on a insulating plaque. The problem of course is that there is a large gap in conductivities between insulator and the surrounding tissue. As the sources are directly underneath the plaque, proper modeling is required. It seems we need a remeshing and fitting scheme here. The first thing to do is probably implement algorithms to reshape the brain/CSF interface to accommedate the shape of the electrode plaque, add options to make a hole in the mesh (holes are in effect insulators), add tools to detect actual locations of electrodes and add local refinement methods (mesh and data refinement: the underlying fiber orientations in the elements need to be interpolated) --Jeroen == Software development == == Technical Requirements for PSE== ===Program Infrastructure=== * Resource (Memory/CPU) management ** Working interactively with large datasets requires that data can be stored in memory and on disk. ** Dividing algorithms into small reusable components will require a lot of memory if data is stored in memory to keep interactivity alive. ** Optimization between using a lot of memory and being fast or more memory and being slow. For example for a small data set you want to store eigenvalues of a tensor, for bigger datasets keeping intermediate results will cause a lot of swapping memory and could lead to running out of addressable memory space. * Component model: Algorithms should be fairly general and exchangable. The data quality of input varies and the goals of the simulations vary as well: hence a component model would be required, with a user interface in which components can be interchanged/omitted/added. * Automation: Automation should be available from the interface. **Often reoccuring scenarios are doing parameter sweeps in different domains, trying different segmenation parameters, using different membrane parameters. ** Most software uses a simple list of parameters to guide the process. A similar concept would make it easier to interact with other software. For instance CardioWave uses a textfile with parameters, most Matlab oriented software in this project uses similar parameter lists. ** Parameters to controlling application: filenames, scalar values (vector and tensor value (e.g. conductivities)) and strings (e.g. membrane models) * External Application Interface: A mechanism to run simulations at in a different process at a different computer. ** To setup a simulation the model should be able to be export in the fileformat of the simulator ** Simulation software often requires MPI, stability and hence should run as a separate program. Since simulations in the project take time interaction is not stricly needed. ** The mechanism supported should be reliable and should support to run a simulation without crashing (simulations can take days to complete) ** It would be nice to access the NeuroFEM solver directly from the Problem Solving Environment. * Annotation: We should have the ability to gather parameters in a simple text document (or something similar) to annotate simulations. Being able to figure out what kind of parameters were used in a simulation is valuable. ** Annotation should be preferably be generated automatically or should be scriptable, this will ease the task of the scientist. ** Keeping a log of operations performed. * Algorithmic separation: ** Store algorithms in libraries which have standard options for error reporting and informing the user (abstract methods that can be separated from actual GUI, giving feedback e.g. warnings etc to the user is important) ** When we have figured out a way of image to model that works for a lot of cases, one wants to be able to quickly rewrite the component GUI program to a full stand-alone program. ** When having a combination of mesh generation tools that work, one may consider a program that can be called under Matlab/Mathematica without GUI for certain basic tasks. === Algorithms === * Segmentation algorithms * Mesh generation algorithms * Mesh editing algorithms: ** creating a hole in the mesh (for insulator) ** Fitting a model of an electrode inside a mesh. ** Mesh refinement tools to add more density at places where we expect a large gradient in the electric field ===Data Representation=== * Import/Export of "simple" data formats: text files (for example matrices in rows and columns), data blocks of a certain data type with a small header file preferably in ascii (like nrrd). Usage of the current SCIRun native file formats requires linking against a lot of C++ classes and SCIRun infrastructure, which is an obstacle in linking against other programs. * Import/Export of parts of datasets (Simulation data can run in Gbytes of data and storing all in memory becomes problematic) * Support for multiple data entities attached to one mesh ** Currently SCIRun allows only one type of data on a mesh, hence a lot of duplication of pipelines mark the current networks. Models seldom have one entity attached to a mesh often one needs to think of conductivity tensors, membrane types, tissue types (segmentation), etc. * Unstructured meshes: Hexhedral/Tetrahedral/Quadrilateral/Triangular elements: Full support for both hexahedral and tetrahedral elements ranging from segmentation to stiffness matrix generation. * Structured meshes: MRI data/confocal data often is a regular multidimension matrix. * Automation: representation of filenames, scalar/vector/tensor parameters is need for automating networks. * Bundling projects: Models often consist of a collection of matrices, meshes, and parameters, bundling everything into one file/directory is useful as an organizational tool. Being able to systematically organize data of current and past simulations is something that makes life easier and will lead to a higher degree of automation and more productive scientists. * Support for a dataset spread over multiple files and selecting part of the data. ** The newest version of CarioWave regenerates multiple files while the simulation is running. Examining a few files will allow the user to look at certain timespans of the data. * Support for time depend data ** time scale can be irregular hence we need a kind of lookup system for actual time ** supporting time with in the geometrical objects ===User Interface=== * Comparison mode: One of the most useful features in SCIRun/Map3d is the dual/triple display mode to compare different datasets in displays that are locked. If we keep the SCIRun platform it would be useful to extend this to BioImage/BioTensor. What one wants to do is comparisons between datasets. * 2D/3D widgets for marking parts of a mesh: ** Marking of locations (constraint to volume or surface or unconstraint floating in 3D volume) ** labeling widgets, e.g. different colors for stimulus electrodes and reference electrodes, adding text to widgets. * 2D Image viewer: ** Draw/compute segmentation: automated segmentation with options for user to override segmentation made ** Overlay of different segmentations/ properties computed on the mesh/ ** Annotation of slice, e.g. slice number, slice size, slice normal in physical space etc. ** Synchronized displays (e.g. sync slice number or actual z postion etc.) * 3D data viewer: ** Transparant surfaces ** The option to switch on and off surfaces/meshes (e.g. as currently in SCIRun) ** Synchronized displays (for comparison mode) ** Display of legend, model parameters used etc in figure. * Graph viewer (line graphics, display function in time): ** Options to draw matlab like figures, with extensive options to set units, titles, grids, scales, etc. ** The interface should allow for creating images that can be used in publications: being able to choose amount of colors, write decent title headers, have possibility to select resolution, being able to added axis, adding symbols, being able to add legends. ** The interface should allow for multiple graphs on top of each other. ** Draw time curves of data: being able to get time signals and display them in a graph ** Annotation of graph viewer: title, legend, axis names/numbers/units. ** Multiple lines in one graph with different colors ** Irregularly spaced x-axis for time data: the project probably requires adaptive time steps and thus sampling is not regular CIBC:Collab:Tuch 0 960 3094 2005-12-15T21:36:18Z Erikj 2 wikitext text/x-wiki Dana, 17 Nov: Just want to put down a couple notes informally on software requirements based on the talk Jeroen and I had with David Tuch a couple weeks ago: when we asked David about interaction at the level of software (as distinct from the technical side of the simulation project he, Ross, Jeroen, et al are interested in), he immediately brought up the following two items of interest: 1. Building a pipleline across multiple different heterogeneous software packages. They currently have many working algorithms of their own but they are all separate. He specifically said he is happy with their existing visualization. But he emphasized that they could use tools that would allow them to build a pipeline between their existing code, any we might provide, and others. 2. Running analyses on many datasets --- i.e his need is to define a processing pipeline ---eg. take in MR measurements, compute DW MR's on them, do tractography, compute error or comparison measures ---- and then say "go do this processing on some large number of existing data sets and show me the results" One note, he also mentioned that he is part of NAMIC and that these items are under discussion there as well .... CIBC:Collab:Triedman 0 961 965 2005-12-15T21:36:52Z Erikj 2 wikitext text/x-wiki Dana, 17 Nov: Although John Triedman was not an official collaborator on the grant this is a very relevant project both in application and software. Brief description is that John and Matt Jolley (a fellow working with him) want to build child-sized FEM torso models (in a variety of sizes) starting from MR or CT scans, place debifillation electrodes inside the torsos, simulate defibrillation, and then measure the currents induced in the myocardium. The main software needs are a pipeline to do from MR or CT to an FE mesh in BioPSE, and some algorithms to measure the results. The latter seem to be relatively straightforward to do. For the former, they have been using 3DSlicer to do segmentation (I can describe in some detail what facilities they're using but don't have time right now) and are pretty happy with it. There are some problems that have to do with islands and gaps that might be worth discussing how to handle. The plan is to use CUBIT to do the meshing from within BioPSE and then existing BioPSE modules to do the simulation. Dave W. has promised some re-meshing improvements to faciliate placing/moving the electrodes. One thing that would help is a *pipelining* facility other than writing lots of files and calling separate programs. One more comment: Matt, who is not a CS guy but very smart and pretty capable, has had lots of installation / compilation / hardware problems. This is because he needs to use development builds but still it seems to me it's harder than it should be. On the other hand he has had some nice things to say about ease of use of BioPSE and he knows and appreciates that he's been getting great support from us ! 966 965 2006-01-25T14:45:01Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, and import them into SCIRun/BioPSE and assign appropriate material properties. '''Overview of Pipeline''' Segmentation of CT and MRI datasets using 3D Slicer Hierarchical combination of individual label maps in NRRD format using unu Utilizing unu modules in SCIRun to read in combined NRRDs Utilizing the model in SCIRun/BioPSE 967 966 2006-01-25T14:48:30Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, and import them into SCIRun/BioPSE and assign appropriate material properties. '''Overview of Pipeline''' Segmentation of CT and MRI datasets using 3D Slicer Hierarchical combination of individual label maps in NRRD format using unu Utilizing unu modules in SCIRun to read in combined NRRDs Utilizing the model in SCIRun/BioPSE 968 967 2006-01-25T15:01:44Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environement. This represents part of a expanding collaboration between SCI[] and SPL to enable rapid creation of imaging based models for modeling. '''Overview of Pipeline''' Segmentation of CT and MRI datasets using 3D Slicer Hierarchical combination of individual label maps in NRRD format using unu Utilizing unu modules in SCIRun to read in combined NRRDs Utilizing the model in SCIRun/BioPSE 969 968 2006-01-25T15:03:24Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environement. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for modeling. '''Overview of Pipeline''' Segmentation of CT and MRI datasets using 3D Slicer Hierarchical combination of individual label maps in NRRD format using unu Utilizing unu modules in SCIRun to read in combined NRRDs Utilizing the model in SCIRun/BioPSE 970 969 2006-01-25T15:08:33Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environement. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for modeling. '''Overview of Pipeline''' Segmentation of CT and MRI datasets using 3D Slicer[[Link title]] Hierarchical combination of individual label maps in NRRD format using unu Utilizing unu modules in SCIRun to read in combined NRRDs Utilizing the model in SCIRun/BioPSE 995 970 2006-01-25T15:12:37Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environement. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for modeling. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] CIBC:Management 0 962 3097 2005-12-15T21:37:20Z Erikj 2 wikitext text/x-wiki Here we document the management activity of the CIBC. [[CIBC:Management:Exec | NCRR Executive Committee]] [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] CIBC:Projects 0 963 3098 2005-12-15T21:38:14Z Erikj 2 wikitext text/x-wiki == Description == This page tracks the current and upcoming list of CIBC development projects. Projects that are currently being worked on, and projects which we intend to work on soon are listed below. At the bottom of this page is a list of links to "snapshots" of this list from previous points in time; it is intended as a historical archive. A separate page, located [[CIBC:Project:Timelines|here]] contains timelines and development schedules. The projects below are listed based on priority. Each project has its own page, dedicated to ongoing discussion for the project. For each project we briefly summarize the main ideas, list the collaboration projects that are motivating the work, and identify and project dependencies. We also try to roughly estimate the effort required to complete the project. If a project has already been assigned, one of more names are listed next to it, along with a "percent complete" estimate. == Compute Gradient and Gradient Magnitudes on the GPU == * Summary: Add fragment shader code to compute local gradient and gradient magnitude, rather than looking them up. BioImage and volume rendering modules need to be updated to support this option. Should allow volume rendering to work with much larger datasets than was previously (interactively) possible. ([[CIBC:Project:GradientsOnGPU|Full project description.]]) * Approximate Effort Required: 2 weeks * Collaborations: McVeigh, Ellisman, Loew, Chen * Developer: McKay Davis * Dependencies: None * Percent Complete: 95% * Remaining 5%: Scale gradient magnitude correctly for 2D widgets == Caching Control for Each SCIRun Output Port == * Summary: Add a UI toggle to each output port to control whether the port's data is cached. Add support to the scheduler to correctly compute which upstream modules need to re-execute based on the state of these ports. ([[CIBC:Project:PerPortCaching|Full project description.]]) * Approximate Effort Required: 2 weeks * Collaborations: All that use SCIRun with large datasets (e.g. McVeigh, Ellisman, Henriquez, Loew, Chen, etc) * Developer: Michael Callahan * Dependencies: None * Percent Complete: 10% == map3d: Expanded display of fiducials == * Summary: Many applications in cardiac imaging generate sets of fiducials, e.g., a reentrant excitation pattern the includes more then one beat. In this case, map3d requires the data to be separated into fiducial sets and only one set is displayed at a time. The goal of this improvement is to support interactive display and manipulation of multiple sets of fiducials, the equivalent of looking at muliple beats or cycles and selecting the time window to display. * Approximate Effort Required: 1 month * Collaborators: McVeigh?, Taccardi * Developers: Worthen and Blackham * Dependencies: Description of file formats for saving multiple fiducial data * Percent Complete: 0% * [[Technical discussion]] == map3d: Expanded display of fiducials == * Summary: It is often useful to display mapping data superimposed on some other geometry that serves as a visual reference, much as landmarks do already in map3d. In this case, one can imagine a heart surface geometry on which we display high resolution mapping data from electrodes that cover only a subset of the heart surface. Another example is of a torso geometry within which only a portion of the surface is covered with measurement electrodes. We want to find a way to render such combined geometries, and allow the user to choose the type of rendering for each surface to enhance the display. * Approximate Effort Required: 1 week * Collaborators: McVeigh, Taccardi, Henriquez? * Developers: Worthen and Blackham * Dependencies: Working data sets to test on * Percent Complete: 0% * [[Technical discussion]] == SuperComputing 2005 Demo: BioImage on Prism == == SCIRun Image Viewer / Editor == *([[CIBC:Project:ImageViewer |Full project description.]]) == Wrapping More ITK FIlters Into SCIRun Modules == == Native Support for Reading Analyze and DICOM Data into SCIRun == == LevelSetSegmenter PowerApp == ([[CIBC:Project:LevelSetPowerApp |Full project description.]]) == Data / Header Separation in Dataflow Objects == * Summary: All of the objects that are passed around in dataflow should be able to share pointers to blocks of memory. This would remove the current need for redundant copies of data when objects are converted between types (e.g. NRRDs, Fields, Matrices, InsightImages, etc). A mechanism (like SCIRun's Handles) would be required to support a destructor policy. ([[CIBC:Project:DataSeparation|Full project description.]]) * Approximate Effort Required: 4 weeks * Collaborations: All that use SCIRun with large datasets (e.g. McVeigh, Ellisman, Henriquez, Loew, Chen, etc) * Developers: Michael Callahan and Jeroen Stinstra * Dependencies: None * Percent Complete: 0% == Separation of Module and Algorithm == * Summary: Currently a lot of code resides in the module class themselves which makes it harder to reuse code. One of the reasons to reuse code is that one actually wants to make modules that do a lot of different operations. If a module for instance requires an unstructured mesh, it should be smart enough to call unstructure internally. If this would be one call to a class it would be easier to implement. The ultimate goal of code separation should be to speed up development of new modules in the packages that require a new interface but mainly consist of already existing algorithms. Examples of algorithms that can be reused: unstructure, changefieldbasis, changefielddatatype, managefielddata, applymappingmatrix, mergefields, fieldboundary, distancemap etc. * Approximate Effort Required: * Collaborations: * Developers: * Dependencies: None * Percent Complete: 0% == Adding Mesh Element Refinement Operations == == Adding Mesh Query Support for MESQUITE == ([[CIBC:Project:MeshRequirementsForMesquite|Full project description.]]) == Regression Testing System == == Shape Analysis Tools == ([[CIBC:Project:ShapeAnalysisTools|Full project description.]]) == Various Other Project Links == Josh's Medical Imaging recommendations: [[CIBC:Imaging]] List of project thoughts from September 2005: [[CIBC:ProjectsSep2005]] Jeroen's model creation tools [[CIBC:Projects:ModelCreation]] [http://software.sci.utah.edu/bugzilla Bugzilla bugs] == Past Snapshots of Projects == None yet. CIBC:Project:Timelines 0 964 3099 2005-12-15T21:38:35Z Erikj 2 wikitext text/x-wiki === Overview === This page is the for tracking the project and developers' schedules, as well as major upcoming events for the Center. All of the project descriptions are located [[CIBC:Projects|here]]. === Project and Developers' Schedules === * Michael Callahan: * McKay Davis: * Darby Van Uitert: === Upcoming Center Events === * December 12-17, 2005: SuperComputing demo of BioImage on Prism * January, 2006: CIBC Workshop CIBC:Project:GradientsOnGPU 0 965 3100 2005-12-15T21:40:08Z Erikj 2 wikitext text/x-wiki Motivation: Volume rendering can use local gradient information to approximate surface (Phong) shading in volume rendered images. Currently, we do this by precomputing the local gradient for each voxel, and sending those to the GPU. The local gradient magnitude is also a useful quantity in volume rendering, as it can be used as the second dimension (data value being the first) to which a 2D transfer function is applied. Like the gradient, the gradient magnitude is currently precomputed on the CPU, and then sent to the GPU. In practice, this means that SCIRun (and BioImage) are typically storing 5 bytes (data, grad x, grad y, grad z, grad mag) for each voxel. While it is computationally efficient to have these values available, the extra memory overhead (especially since the number isn't a power of 2!) ends up greatly reducing the utility of SCIRun's volume rendering. In practice, we would often rather sacrifice computational efficiency for memory efficiency, thus allowing us to visualize as-large-as-possible datasets with volume rendering. We can do this by computing the local gradient and gradient magnitudes on the GPU "just-in-time" (as they are needed) with a fragment program. CIBC:Project:PerPortCaching 0 966 3101 2005-12-15T21:40:43Z Erikj 2 wikitext text/x-wiki Motivation: SCIRun currently caches the output of every output port in the dataflow graph. This is useful because it means upstream don't need to be (redundantly) recomputed when a downstream module changes a parameter; however, it can also lead to memory bloat. A better solution is to support a caching toggle for each output port. If the toggle is set to true, that port will cache its result, just as it currently does. However, if the toggle is set to false, the port will not hold a copy of the data. On subsequent executions of downstream modules that require that require that data as input, the original module will now have to recompute that result, since it is no longer cached. Adding this feature will greatly increase the size of datasets that SCIRun networks and PowerApps are able to process. The first version of this project will require the user (or the network / PowerApp) to manually configure whether each output port does or does not cache its data. The second version will add support for optionally saving non-cached data to disk (and then reading them back, when needed). Further future versions could add support for automatically setting the cache / don't-cache / don't-cache-but-save-to-disk behavior for each port based on usage behavior. For example, a memory (and disk) pool could be allocated at startup, specifically for caching output data; when that pool was exhausted, datasets could be removed (and their toggle set to false) based on a least-recently-used cache replacement algorithm. Ultimately, this project should dove-tail with the larger project of [[CIBC:ProjectStateBasedHashKeysAndDatabasingForDataflowObjects | computing a hash key (based on upstream user-interface state) and storing a database entry for dataflow objects]]. Jeroen's notes on this are [[CIBC:Project:MemoryEfficiency|here]]. ---- Jeroen's comments on this project: Concerning Port-Caching, I'd like to explore the opportunity of caching to disk as well. It would be great to be able to specify whether we want data to be cached in memory, cached on disk or not cached at all. I talk with Micheal and there are currently modules that do some kind of caching within the module, if we do this we should redesign these modules that do internal caching and those that do not recompute data if they see the same input (the latter is not a proper implementation of the dataflow paradigm). I see this as the first step in better memory management. I don't think I need datapath hashing for the files I am writing to disk (It would be a nice computer science project, but I don't see its immediate use the collaborations) Though I agree we should be able to store data to disk. It would be great to have kind of breakpoints in the network where you commit everything to disk in order to defrag memory (It is a trick I use often in my M'lab code to deal with the 32bit addressing space restrictions). Currently I have to split up my networks in tiny networks and execute them independently to avoid memory problems. I think being able to stream certain dataflows to disk may help to achive better effieciency. I think we should first implement port caching / disk caching and then memory block improvements. CIBC:ProjectStateBasedHashKeysAndDatabasingForDataflowObjects 0 967 3102 2005-12-15T21:41:10Z Erikj 2 wikitext text/x-wiki Coming soon... CIBC:Project:MemoryEfficiency 0 968 3103 2005-12-15T21:41:33Z Erikj 2 wikitext text/x-wiki === Port Caching === '''Motivation''' Currently all intermediate results of a network are stored in memory. With large datasets as encountered in imaging and modeling, SCIRun runs out of addressable memory very fast. In both the Henriquez and McVeigh project we are already running of memory when using SCIRun. It is currently a big obstacle in obtaining results, as SCIRun just crashes as it runs out of addressable memory. Waiting until every platform is a 64bit platform is not an option '''Experimental option to switch of port caching''' There is currently an experimental option to switch off port caching. This solves the problems for the moment, but it is not elegant and it does not work with every module. I already had to fix a couple of my modules to work without port caching. What one wants is beter control over what is cached and what is not cached. In no caching mode it is hard to run a network again. '''Immediate Goals''' Upgrade all modules to work in the no port caching mode. The modules should no longer assume that once they obtain a handle to an object that it can be freed without the object being removed from memory. There are currently modules that cache internally, this should be minimized to reduce memory overhead. The goal is to add options to the port menu so we can toggle port caching on and off. Preferably we have the following options: caching on, caching on disk, caching off. This will give the user more fine tuning over what is cached and what is not. Add options to set a default caching option for each type of port in the XML description to set the most sensible caching option by default to help the user. Add the option to switch off internal caching for subnetworks, the latter will help the user organize the network more efficiently. '''Future Goals''' Add options for the scheduler to override caching and decide on caching on disk or no caching depending on how long it took to compute the resource and the size of the object. So when scinew detects that scirun is running out of memory more resources are relocated on disk and are removed from memory. This requires to query on how long it took to compute the a dataflow object and the amount of memory it uses. Hence it would require additional functionality in Core. Technical discussion 0 969 3104 2005-12-15T21:42:23Z Erikj 2 wikitext text/x-wiki This page should include discussion of the technical details of carrying out this change to the software. CIBC:Project:DataSeparation 0 970 3105 2005-12-15T21:43:42Z Erikj 2 wikitext text/x-wiki == Motivation == The next phase of the CIBC center will focus more on model generation, image segmentation and image annotation. One of the drawbacks of a dataflow network is that every step generates a new dataflow object. Currently every change to an object results into a new object with all data attached to it. One of the drawbacks is that if one wants to change only information in the annotation, one has to copy the complete object. If one does not do this, the network is not strictly a dataflow anymore. Since we can dynamically change the dataflow network in SCIRun, the savest option is to copy the object and alter the copied object. This does not always seems to make sense. For instance when I retrieve data from a field and store it in a matrix for processing, we actually only attach a different interface onto the data, but the data stays the same. A solution to this ineffiency is the following: split the header and the data into two objects. In this case the header points to the data and is used in the dataflow scheme. If I now need to copy the object and do not intend to copy the data, I can copy the header and can leave the data intact. When going to bigger datasets this starts to make sense as addressable memory space is an issue on 32bit platforms. In this scheme objects like Image, Matrix, Nrrd, Field become interfaces to the underlying data. This will make modules that just finetune annotation more feasible. The second reason for header/data separation is the wish for more complex objects that store for instance segmentation on top of an image. In the viewer you want these to coincide, but lateron you only want to use the segmentation for the model editing, hence one may want to put a different interface on that piece of the data. This idea is similar to what NRRD and other header generating programs use on the file system to reduce copying a lot of data, where there are separate header files and data files. == Requirements == A short list of requirements for the datablocks [1] Most libraries seem to use one large datablock instead of a pointer array to smaller arrays to define 2D or higher dimensional arrays. So it seems logical to use large datablocks to store data. We could also add support for pointer to pointer array structures if needed (should these be linked to header or datablock). [2] The datablocks should have their own Pio, so we can gain in file efficiency when using for instance Bundles to store data. If Pio encounters multiple handle to the same datablock it is only stored once. Hence the efficiency in the memory is maintained and will remain when the data is loaded again. Hence we should store datatype in the datablock as well. [3] The datablocks should have their own mutexes and reference counters. [4] A header should be able to refer to multiple datablocks. [5] Preferably Field, Matrix, and Nrrd should use this mechanism to share data. Hopefully Josh's Annotated Image classes can use this mechanism as well. == Status of project == This project is on hold until we solved the port caching and review the memory uses after finishing this project. == Additional thoughts == CIBC:Project:MeshRequirementsForMesquite 0 971 3106 2005-12-15T21:44:30Z Erikj 2 wikitext text/x-wiki Needed for Jason's work with MESQUITE: 1) A bunch of mesh topology questions. Given an element what are its nodes? (i.e. get parent/child functionality) Given a node, set the coordinates (i.e. move a node). Given a node, what are the coordinates? That type of thing. 2) Some "tagged" information. At one point, this was only needed with the TargetMatrix smoothers. I believe that is still the case, so if you don't need it, you can avoid implementing this part of the interface. Generally, this is something like: tag each node with double (or other type). For node x fill tag y with value z. Things like that. 3) Limited Geometry information. For a given node, give me the closest place on the geometric domain (snap_to). For a given node, what is the surface normal (for surface smoothing)? Given a node, how many degrees of freedom does it have (is it owned my a surface, curve, vertex, etc)? That is essentially all of the geometry queries, though you need to be able to answer those questions for elements and nodes. If you are doing smoothing on the interior of a volume, you don't need this part of the interface. ---- Jeroen's comments on this: 1) I think some of this functionality is already there in some meshes it is just not fully implemented for every mesh. I guess this goes back to a message I posted on the Developer's list on completing the topology functions for all the mesh classes like TriSurf and QuadSurf etc. I don't remember which classes but they indeed lack some of these functions. This would be great to have as I need these as well to draw membranes in a mesh. I am working on code that splits a mesh in specific domains, by splitting nodes for which I need the same topological data. So I see this as really useful. 2) I don't understand what you mean with tagged data, if you mean multiple data entries at the same node, then we should implement it more general, as both I and Josh like to overlay all kinds of data on an image or unstructured field. (tagging can range from a boolean segmentation mask, to more hisotological segmentation to physical quantities like membrane densitity). Often you want more statistical data to overlay your model or image. In both the model generation as the segmenetation these are very similar needs. I think we should try to figure out how we want to deal with the question: I have a lot of geometrical or physical quantities as nodal or modal data, but only one underlying mesh, do I store it as separate entities or do I allow to store them in one object? You could use a field of type bool for tagging.... 3) OK the distance to element/node. I discussed this with Frank and Marty already as I need this for my geometrical processing as well. I actually already have code to find distances etc, I just need to optimize it. But we were thinking of actually implementing it in the Basis classes, which is a little more complicated as they are higher order. For higher order elements there is no analytical solution to the projection anymore, hence a element needs to be subdivided into smaller elements like what we do with the display functionality. But it seems the approximation class is already there we just need to implement the distance function. I think this functionality should go in the Basis. Concerning the degrees of freedom, I am not sure exactly what you mean, but if it is a description of the element, Frank added annotation for these things in the basis classes which describe the unit element of a certain class. CIBC:Imaging 0 972 3107 2005-12-15T21:45:22Z Erikj 2 wikitext text/x-wiki ==Thoughts on Medical Imaging (MI) at the CIBC== --[[User:Cates|Cates]] 16:22, 19 Oct 2005 (MDT) ===The current state of open-source MI software.=== *There is a growing need for open source software and, more importantly, software standards in the MI community. Several groups (e.g. NAMIC, ISC) are pushing software standards for segmentation, registration, visualization and validation. *Standards for collaborative, open-source software development and testing are a very important part of this effort. CS and non-CS researchers, program managers and students are literally begging for reliable, tested, imaging tools that "just work out-of-the-box". *ITK is gaining acceptance as the standard for segmentation, registration, and certain types of image processing. VTK is already an accepted standard for visualization. Both toolkits have a robust software process and good support within the community. *Other toolkits are extending the functionality of ITK & VTK for more specific imaging and diagnostic medical applications. These toolkits have bought into the open-source process pioneered by NIH and the ITK project. ===What do other groups within the MI community do?=== *Many labs are adopting standard software "kits" such as the one promoted by NAMIC. *Non-CS labs use a mix of custom research software and commercially available tools. *CS labs often focus on toolkits, combining fltk, vtk, itk, tcl to produce small, tailored applications. New toolkits are appearing that add application-specific functionality to generic toolkits, e.g. MITK, IGSTK. ===What software tools are missing from the MI community?=== *Truly open-source visual programming environments. *Advanced visualization. *Interactive widgets. (VTK will soon set a very high bar.) ===What imaging capabilities do we currently have in SCIRun?=== *Limited support for image data. *Limited support for ITK algorithms. *Limited support for image visualization. *Limited support for image interaction (widgets). *Bottom line: There is no dedicated support for images in SCIRun. Thus far we have relied mostly on existing functionality and retro-fitted it to support image processing. ===Recommendations for the CIBC=== *More fully adopt ITK as our imaging platform. This requires a more serious commitment of resources than may have previously been made? *Participate more actively in the MI open-source movement. We have a significant presence in this community and could more fully exploit our influence. *Bring our software process up to the standards set by the major players in the community. Aspire to gaining the ISC and NAMIC "seal-of-approval", which potentially includes distribution of our code within a standard open-source MI software kit. *Consider re-engineering SCIRun as a collection of lightweight modules to better support agile development and deployment. *Think about alternatives to SCIRun. Are there combinations of other open-source toolkits we can consider that are cheaper and more flexible than SCIRun to use? *A visual programming environment for ITK could become the community open-source standard. *A high quality visualization application (BioImage-style) could become a community open-source standard. *A generic segmentation PowerApp could become a community open-source standard. For more specific ideas within SCIRun, see [[CIBC:Project:LevelSetPowerApp]] [[CIBC:Project:ImageViewer]] ===Related Links=== *[http://www.insightsoftwareconsortium.org Insight Software Consortium] *[http://www.na-mic.org/Wiki/index.php/SoftwareInventory NAMIC Kit] *[http://www.na-mic.org/Wiki/images/3/39/SoftwareProcess.pdf Software Process Notes] *[http://www.itk.org ITK] CIBC:Facility:DataStorage 0 973 3108 2005-12-15T21:47:08Z Erikj 2 wikitext text/x-wiki ===Hitachi Drive=== The Hitachi drive volumes are automounted as */usr/sci/cibc-data */usr/sci/cibc-projects */usr/sci/cibc-users Samba mount using *//cibcsrv.sci.utah.edu/cibc-data *//cibcsrv.sci.utah.edu/cibc-projects *//cibcsrv.sci.utah.edu/cibc-users CIBC:Multimedia 0 974 3109 2005-12-15T21:47:38Z Erikj 2 wikitext text/x-wiki ===Movies by [[User:mdavis | McKay Davis]]=== [http://www.sci.utah.edu/~mdavis/cthead00.mpeg Chapel Hill CT head 00] - MPEG [http://www.sci.utah.edu/~mdavis/cthead01.mpeg Chapel Hill CT head 01] - MPEG [http://www.sci.utah.edu/~mdavis/cthead02.mpeg Chapel Hill CT head 02] - MPEG [http://www.sci.utah.edu/~mdavis/cthead03.mpeg Chapel Hill CT head 03] - MPEG [http://www.sci.utah.edu/~mdavis/ica05.mov UCLA CTA head (ica05)] - Quicktime MOV CIBC:Discussion:MemoryEfficiency 0 975 3110 2005-12-15T21:48:20Z Erikj 2 wikitext text/x-wiki === Memory Efficiency === '''Motivation''' When applying SCIRun techniques to real-scale modelling problems, one quickly finds out that one is running out of addressable memory space. In order to be able to use SCIRun as a platform in the current collaboration projects, memory usage needs to be organized more efficient. The focus of this discussion should be how to optimize the CPU and memory usage in a dataflow environment. '''Port Caching''' Currently all ports are cached at the end of the execution of a module. The advantage of this is that when I want to reexecute something all intermediate steps are there, disadvantage is that it requires a lot of memory resources which we do not have when doing large scale models. Currently there is a solution in SCIRun to switch off all port caching, disadvantage is that you cannot redo a part of a network and all interactivity is lost. [1] A better option would be to cache to disk and selectively not cache any output. Hence being able to do "Cache/Cache on disk/No cache" for every port. [2] This seems to solve some problems, but there is still fragmentation of memory and address-space and on multi processor machines a lot of modules are executed in parallel so still a lot of data is remaining in memory. Only for long pipelines it is a real improvement, when there is no fragmentation of memory going on. '''Data blocks''' [1] One concept that might be used to deal with the fragmentation issue is to build a wrapper around every block of memory and the notion of being able to store these blocks to disk and reload them when they are needed again. In more detail: it would be great if the scheduler could go into the datastream objects, mark them as currently not used and then selectively store large data blocks to disk and reload them when they are needed for a module execution. That way when memory consumption is high the scheduler can freeze execution of modules and dump everything to disk and reload all needed data, de facto defragmenting memory. '''Parallel Issues''' [1] The problem soetimes seems to be that SCIRun executes too many modules at once. It uses a lot temporary memory and a lot ofmemory swapping, reducing the overall performance. It would be great to have an option to limit the number of modules executed at the same time. Preferably adjusted to the number of available modules. Being able to steer this would be great. '''Memory manager''' [1] How does the current allocator work? (Could someone fill me in on the specifics? -- Jeroen) [2] It seems to me that we should grab a pretty large piece of memory to put our dataflow objects in. '''Thirdparty libraries''' [1] Currently we allow thirdparty libraries to allocate memory and we wrap these objects and use them. The disadvantage is that we do not have any control over where memory is allocated. So we might want to rethink what we do with thirdparty libraries [2] Mainly Teem is allocating memory for objects we reuse, these objects can be big. So how does that affect our memory management. Is Teem currently able to allocate a huge chunk of data or even a small amount in the middle of the addressing space. [3] In SCIRun we have a lot of STL objects that do not make use of 'scinew', do we want them to use our memory manager so we can better separate out small and large memory blocks. Or is this automatically done. Note some Field classes use large vector<vector> arrays, which could potentially fill up all the space reserved for small memory blocks. Do we have a good strategy for this? '''Memory and CPU resource management''' [1] It would be nice if modules could tell the scheduler a prediction on memory use and CPU use. This could then be used to optimize network performance, to use as many free memory as available to boost speed but staying within memory limits. '''Alternative strategies''' [1] Maybe should have the option write everything to disk, and for each module just load read in the necessary streams into memory and keep swapping thing to disk manually. Main Page 0 1 960 959 2005-12-15T21:50:35Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === [[Events]] === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] === Wiki Help === * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 961 960 2005-12-15T21:51:08Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] === Wiki Help === * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. 962 961 2005-12-15T21:53:02Z Erikj 2 /* Wiki Help */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. 963 962 2005-12-15T21:54:10Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] ===Related Links=== *[http://software.sci.utah.edu SCI Institute Software Site] *[http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCI Subversion FAQ (including CVS to SVN information)] *[https://code.sci.utah.edu/cgi-bin/user_manage Change your Subversion password.] *[https://code.sci.utah.edu/wsvn Browse the repository via WebSVN] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. 1117 963 2005-12-19T19:43:43Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] ===Related Links=== *[http://code.sci.utah.edu:443/wiki/index.php/SCI_Code_Wiki SCI Code Wiki] *[http://software.sci.utah.edu SCI Institute Software Site] *[http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCI Subversion FAQ (including CVS to SVN information)] *[https://code.sci.utah.edu/cgi-bin/user_manage Change your Subversion password.] *[https://code.sci.utah.edu/wsvn Browse the repository via WebSVN] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. CIBC:Project:ImageViewer 0 947 1061 964 2006-01-25T00:32:22Z McKay Davis 5 wikitext text/x-wiki ===Motivation=== First, see the definitions of images and labeled images [[CIBC:LabeledImages | here]]. When visualizing image data it is important to present the data in as raw a form as possible so as not to obscure information content or introduce erroneous information content. Typically this means displaying higher dimensional data in 2D slices on a grid whose spacing matches that of the image data, with no filtering, interpolation, or other transformations applied. When image data has multiple channels (vector-valued data points), each channel may be displayed separately or colored using an appropriate map for the data (e.g. rgb pixels). For common imaging tasks such as segmentation and registration, it is critical that a user be able to visualize image data in this way. ===SCIRun ImageViewer Module=== For SCIRun I propose a new visualization module that incorporates the above ideas. It should have the following list of features. *Presents image data of 2 and higher dimensions in successive 2D slices. The slice domain defaults to the first two fastest-increasing axes in the data, with the ability to permute the choice of axes as needed. Reslicing the image along a new axis should not involve transforming or otherwise interpolating the data. *The user should be able to toggle between views of the data in isotropic pixel-space and isotropic real space. The pixel-space display is the most raw view, where no interpolation of the data is necessary other than nearest-neighbor interpolation when resizing the display window (zooming). The real-space display may require resampling of exactly one of the display axes to match the spacing of the other display axis. This resampling should use nearest neighbor interpolation, with the option for linear interpolation if desired. *Navigational controls to allow stepping forward and backward through slices of the data, reslicing, and zooming in and out of regions of interest. *Image information such as image extent, spacing, and view orientation should be displayed for the user. *The usual SCIRun support for color mapping the data. *Functionality for overlaying [[CIBC:LabeledImages | labeled image]] masks (segmentations) on the original image data. *Interaction should include: probing image values and locations with the mouse, drawing labeled images directly into the display window. Additional bells and whistles to consider: *Navigational controls that orient the user to the slice location within the higher dimensional image domain. ===Example Images=== The following images are taken from the UNC image viewer application in common use in the ITK community. They illustrate something akin to what I have in mind for the SCIRun viewer. The data presented on the overlay is information about the image size and spacing. The data at the lower-right corner of the display shows the position of the mouse and the pixel value at that position. [[Image:UNCImageViewer1.jpg|thumbnail|100px]] [[Image:UNCImageViewer2.jpg|thumbnail|100px]] This next example shows a labeled region in green overlaid on top of the original image. This green section could be the result of an automatic segmentation, a hand-drawn segmentation, or some combination of both. [[Image:OverlayExample.jpg|thumbnail|100px]] ===Painter Documentation=== -cd to the directory containing the files to be segmented > cd /Volumes/cibc.data.sci.utah.edu/CapecchiMouseStudy/April13 -startup the segmenter, the first parameter is the underlying data, the second parameter is the first segmented volume, and the third is the second segmented volume: /scratch/mdavis/SCIRun/bin/segment hox-wt-04132005.nhdr hox-wt-04132005-hand-digit4-metacarpal.nhdr +,- Keys zoom in and out Up/Down change current layer (volume) Left/Right change stacing position of current layer (volume) Middle-Mouse-Button set other views Mouse-Scroll-Up changes current slice to next slice Mouse-Scroll-Down changes current slice to previous slice Shift-Left-Mouse-Button-Drag Grabs and pans current window Shift-Right-Mouse-Button-Drag Zooms current window in and out Shift-Middle-Mouse-Button-Click Autoviews current volume in current window 'F' button - starts flood fill tool: *Right mouse button sets current value to flood fill with *Left mouse button sets seed point and performs flood fill 'G' button - starts paint tool: *Left mouse button paints *Scroll wheel changes brush size *Right mouse button quits tool Segmentation of CT and MRI datasets using 3D Slicer 0 976 971 2006-01-25T15:18:38Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation of CT and MRI Datasets using 3D Slicer == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. 3D Slicer is available on numerous platforms and can be obtained here.[] [[Getting Started]] 972 971 2006-01-25T15:19:22Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. 3D Slicer is available on numerous platforms and can be obtained here.[] [[Getting Started]] 973 972 2006-01-25T15:20:11Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. [[Getting Started]] 974 973 2006-01-25T15:29:02Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. [[Getting Started]] The first step is to obtain the 3D slicer program as detailed on the 3D slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. [[Modifying Data]] Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the Modifying Data section. 975 974 2006-01-25T15:29:47Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D slicer program as detailed on the 3D slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the Modifying Data section. 976 975 2006-01-25T15:41:20Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment DICOm dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D slicer program as detailed on the 3D slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the Modifying Data section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important UNDO tools. '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. 977 976 2006-01-25T15:41:59Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment DICOm dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D slicer program as detailed on the 3D slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important UNDO tools. '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. 978 977 2006-01-25T15:42:38Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment DICOm dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important UNDO tools. '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. 979 978 2006-01-25T15:44:36Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important UNDO tools. The draw function will also be useful. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. 980 979 2006-01-25T15:47:38Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important UNDO tools. The draw function will also be useful. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. 981 980 2006-01-25T15:52:50Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important UNDO tools. The draw function will also be useful. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. The window to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. 1001 981 2006-01-25T15:54:40Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important UNDO tools. The draw function will also be useful. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. The window to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. Hierarchical combination of individual label maps in NRRD format using unu 0 977 982 2006-01-25T16:00:22Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' wgucg is part of the larger TEEM libary. unu which is a command line tool to maipulate NRRD files. 983 982 2006-01-25T16:01:57Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary. ''unu'' which is a command line tool to maipulate NRRD files. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. 984 983 2006-01-25T16:03:12Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary. ''unu'' which is a command line tool to maipulate NRRD files. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. 985 984 2006-01-25T16:11:33Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary. ''unu'' which is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso 986 985 2006-01-25T16:11:55Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso 987 986 2006-01-25T16:12:13Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso 988 987 2006-01-25T16:14:13Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. 989 988 2006-01-25T16:14:47Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''unu scripts''' 990 989 2006-01-25T16:15:29Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' 991 990 2006-01-25T16:18:03Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary[http://www.example.com link title]. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' 992 991 2006-01-25T16:19:01Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary[http://teem.sourceforge.net/index.html]. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' Hierarchical combination of individual label maps in NRRD format using unu 0 977 993 992 2006-01-25T16:29:08Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary[http://teem.sourceforge.net/index.html]. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' Obtain TEEM and familiarize yourself with the various ''unu'' commands listed here[http://teem.sourceforge.net/unrrdu/index.html]. There are various ways to combined NRRDs hierarchically but given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created 994 993 2006-01-25T16:33:17Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary[http://teem.sourceforge.net/index.html]. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' Obtain TEEM and familiarize yourself with the various ''unu'' commands listed here[http://teem.sourceforge.net/unrrdu/index.html]. There are various ways to combined NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. 1000 994 2006-01-25T16:33:41Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary[http://teem.sourceforge.net/index.html]. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' Obtain TEEM and familiarize yourself with the various ''unu'' commands listed here[http://teem.sourceforge.net/unrrdu/index.html]. There are various ways to combined NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. 3112 1000 2006-01-25T16:41:29Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary[http://teem.sourceforge.net/index.html]. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' Obtain TEEM and familiarize yourself with the various ''unu'' commands listed here[http://teem.sourceforge.net/unrrdu/index.html]. There are various ways to combined NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) CIBC:Collab:Triedman 0 961 996 995 2006-01-25T16:35:18Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environement. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for modeling. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 997 996 2006-01-25T16:35:33Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environement. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for modeling. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 998 997 2006-01-25T16:37:17Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environement. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for modeling within the SCIRun/BioPSE environment. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 999 998 2006-01-25T16:38:02Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1006 999 2006-01-25T16:38:33Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston Dana Brooks, PhD, SCI, NorthEastern University David Weinstein, PhD, SCI, Utah Steve Pieper, PhD, SPL Gordon Kindlmann, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1007 1006 2006-01-25T16:56:27Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1008 1007 2006-01-25T16:56:40Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1009 1008 2006-01-25T16:56:55Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1010 1009 2006-01-25T20:23:55Z Matthew.jolley@tch.harvard.edu 23 /* Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment */ wikitext text/x-wiki == Modleing of Inmplantable Electrode Defibrillation in Children using Image Based Child Torso Models == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1011 1010 2006-01-25T20:24:46Z Matthew.jolley@tch.harvard.edu 23 /* Relatively Rapid Creation of Models from DICOM datasets for use in the SCIRun/BIOPSE Environment */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of a expanding collaboration between SCI[http://www.sci.utah.edu/] and SPL[http://splweb.bwh.harvard.edu:8000/] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1012 1011 2006-01-27T07:38:08Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between SCI[http://www.sci.utah.edu/ SCI] and SPL[http://splweb.bwh.harvard.edu:8000/ SPL] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1020 1012 2006-01-27T07:38:45Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical combination of individual label maps in NRRD format using unu]] [[Utilizing unu modules in SCIRun to read in combined NRRDs]] [[Utilizing the model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1021 1020 2006-01-27T08:22:27Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Model in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1022 1021 2006-01-27T08:23:38Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to enable rapid creation of imaging based models for utilization in SCIRun/BioPSE. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1037 1022 2006-01-27T08:29:58Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) Segmentation of CT and MRI datasets using 3D Slicer 0 976 1002 1001 2006-01-25T16:42:00Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important UNDO tools. The draw function will also be useful. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. The window to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1013 1002 2006-01-25T16:42:41Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained here[http://www.slicer.org/]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. The window to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1014 1013 2006-01-27T07:44:22Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by the Tutorial listed on that site. '''Modifying Data''' Once you are comfortable importing DICOM datasets turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the Modifying Data section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the NRRD format created by Dr. Kindlmann. The window to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1015 1014 2006-01-27T07:49:48Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. The documentation for slicer is excellent. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the[http://teem.sourceforge.net/nrrd/title NRRD format]NRRD format created by Dr. Kindlmann. The window to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1016 1015 2006-01-27T07:51:07Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. The documentation for slicer is excellent. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format] created by Dr. Kindlmann. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1017 1016 2006-01-27T07:57:50Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available on numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. The documentation for slicer is excellent. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format] created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu] which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1064 1017 2006-01-27T08:00:11Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available precompiled for numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. The documentation for slicer is excellent. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format] created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu] which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer 0 978 1003 2006-01-25T16:43:34Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Toolbox of Algorithms for Segmentation == 3113 1003 2006-01-25T16:46:02Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Toolbox of Algorithms for Segmentation == '''Thresholding''' Thresholding is a good place to start and is a particularly good toolf for highly homogeneous voxels with a unique intensity in the image. An example of this is bone. ''This page is a work in progress.'' Utilizing unu modules in SCIRun to read in combined NRRDs 0 979 1004 2006-01-25T16:52:42Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' Dr. Weinstein and others have encapsulated the power of many of the TEEM tools, including each of the individual ''unu'' tools into modules within SCIRun. These are listed under the modules reference on the SCIRun site [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html]. These modules along with other TEEM tools incorported into SCIRun allow you to convert the combined.nrrd file into a usable SCIRun field for subsequent meshing. ''This page is under construction.'' 1005 1004 2006-01-25T16:53:47Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' Dr. Weinstein and others have encapsulated the power of many of the TEEM tools, including each of the individual ''unu'' tools into modules within SCIRun. These are listed under the modules reference on the SCIRun site [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html]. These modules along with other TEEM tools incorported into SCIRun allow you to convert the combined.nrrd file into a usable SCIRun field for subsequent meshing. ''This page is under construction.'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:53, 25 Jan 2006 (MST) 1019 1005 2006-01-25T16:54:23Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' Dr. Weinstein and others have encapsulated the power of many of the TEEM tools, including each of the individual ''unu'' tools into modules within SCIRun. These are listed under the modules reference on the SCIRun site [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html]. These modules along with other tools incorported into SCIRun allow you to convert the combined.nrrd file into a usable SCIRun field for subsequent meshing. ''This page is under construction.'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:53, 25 Jan 2006 (MST) 3114 1019 2006-01-27T08:19:06Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference]on the SCIRun site. ''This page is under construction.'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:53, 25 Jan 2006 (MST) Utilizing the model in SCIRun/BioPSE 0 980 1018 2006-01-25T16:57:36Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki ''Under construction'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 3115 1018 2006-01-27T08:03:43Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== ''Under construction'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) Talk:CIBC:Collab:Triedman 1 981 3116 2006-01-25T20:30:27Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Project Description == Hierarchical Combination of Individual Volumes to Form a Combined Model 0 982 1023 2006-01-27T08:40:47Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful tool called ''unu'' which is part of the larger TEEM libary[http://teem.sourceforge.net/index.html]. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' Obtain TEEM and familiarize yourself with the various ''unu'' commands listed here[http://teem.sourceforge.net/unrrdu/index.html]. There are various ways to combined NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) 1024 1023 2006-01-27T08:45:41Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM libary]. ''unu'' is a command line tool to manipulate NRRD files just like you were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu''. The power of ''unu'' has also been encapsulated in SCIRun modules available in the current SCIRun distribution. To do this you need to make: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' Obtain TEEM and familiarize yourself with the various ''unu'' commands listed here[http://teem.sourceforge.net/unrrdu/index.html]. There are various ways to combined NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) 1073 1024 2006-01-27T08:52:10Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/unrrdu/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combined NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) Importing, Resampling, and Defining Axes of a Model in SCIRun 0 983 1046 2006-01-27T08:41:58Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference]on the SCIRun site. ''This page is under construction.'' Modeling and Visualization of Models in SCIRun/BioPSE 0 984 1025 2006-01-27T08:43:06Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== ''Under construction'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1026 1025 2006-01-27T10:56:53Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1027 1026 2006-01-27T10:59:22Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1028 1027 2006-01-27T11:12:36Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. '''Meshing''' SCIRun has the ability to take the voxels represented in the '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. There is wide variation and care should be taken in choosing them. These can then be entered using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Inserting Arbitraryly Shaped Electrodes into the Model''' We are interested in solving the forward problem for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1029 1028 2006-01-27T11:14:49Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. '''Meshing''' SCIRun has the ability to take the voxels represented in the '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. There is wide variation and care should be taken in choosing them. These can then be entered using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Inserting Arbitraryly Shaped Electrodes into the Model''' We are interested in solving the forward problem for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1030 1029 2006-01-27T11:15:06Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. '''Meshing''' SCIRun has the ability to take the voxels represented in the '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. There is wide variation and care should be taken in choosing them. These can then be entered using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Inserting Arbitraryly Shaped Electrodes into the Model''' We are interested in solving the forward problem for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. ''Under Construction'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1031 1030 2006-01-27T11:21:55Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered witin a net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the forward problem '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. ''Under Construction'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1032 1031 2006-01-27T11:26:05Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to do this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. ''Under Construction'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1033 1032 2006-01-27T11:30:14Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to do this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. ''Under Construction'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1034 1033 2006-01-27T11:30:41Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to do this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. ''Under Construction'' --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1035 1034 2006-01-27T11:32:47Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to do this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. '''Functional Example Net as a Tutorial''' Currently under development --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) Modeling and Visualization of Models in SCIRun/BioPSE 0 984 1036 1035 2006-01-27T11:33:01Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to do this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. '''Functional Example Net as a Tutorial''' Currently under development --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1050 1036 2006-01-27T11:35:01Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes in inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. '''Functional Example Net as a Tutorial''' Currently under development --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1056 1050 2006-01-27T16:27:57Z Matthew.jolley@tch.harvard.edu 23 /* FEM Modeling of Electric Fields in Models */ wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this did not exist in SCIRun 1.24.2 and is currently being developed. '''Functional Example Net as a Tutorial''' Currently under development --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1057 1056 2006-01-27T16:35:55Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Currently under development --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1059 1057 2006-01-27T16:37:28Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole this are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1060 1059 2006-01-27T16:42:15Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will then be described using examples. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1062 1060 2006-01-27T16:53:20Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of function nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module] '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1063 1062 2006-01-28T04:54:52Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1069 1063 2006-01-28T04:55:51Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for modeling electric fields in biological tissues. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1081 1069 2006-01-28T16:15:46Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in anatomically acurate image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) File:Torsoele1.jpg 6 985 3120 2006-01-27T13:31:11Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki CIBC:Collab:Triedman 0 961 1038 1037 2006-01-27T13:37:00Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1039 1038 2006-01-27T13:37:46Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == Image: Torsoele1.jpg '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1040 1039 2006-01-27T13:41:32Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsoele1.jpg]logo] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1041 1040 2006-01-27T13:50:21Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|thumb|]] [[Image:Torsoele1.jpg1.jpg|thumb|]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1042 1041 2006-01-27T13:50:41Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|thumb|]] [[Image:Torsoele1.jpg|thumb|]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1043 1042 2006-01-27T14:19:07Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:35, 25 Jan 2006 (MST) 1044 1043 2006-01-27T14:26:22Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] 1045 1044 2006-01-27T14:27:35Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] 1051 1045 2006-01-27T14:28:09Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] 1052 1051 2006-01-27T16:29:09Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL Site best viewed with Firefox '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] 1053 1052 2006-01-27T16:29:51Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]]Site best viewed with Firefox Browser '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL Site best viewed with Firefox '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] 1054 1053 2006-01-27T16:30:41Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- Site best viewed with Firefox '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] 1055 1054 2006-01-27T16:31:49Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] 1058 1055 2006-01-27T16:34:07Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1070 1058 2006-01-27T16:39:08Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goal of Project''' Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to streamline mathematical modeling and visualization of MR and CT based models. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1074 1070 2006-01-28T16:28:10Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goals of Project''' 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the electrode elements for which electrical properties can be independently and adaptively set. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1075 1074 2006-01-28T17:15:51Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goals of Project''' 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the electrode elements for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model various placement of internal defibrillar electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in the children of various sizes. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1076 1075 2006-01-28T17:16:17Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Due to technical issues surrounding the placement of Implantable Cardiac Defibrillators in children, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goals of Project''' 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the electrode elements for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model various placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in the children of various sizes. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1077 1076 2006-01-28T17:23:24Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Due to the variety of sizes and shapes of children, inserting Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goals of Project''' 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the electrode elements for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) File:Torsovis1.jpg 6 986 3121 2006-01-27T13:48:43Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki File:Heartele.jpg 6 987 3122 2006-01-27T14:02:16Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki File:Resamplenet.jpg 6 988 3123 2006-01-27T14:49:45Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki File:Nrrdresample.jpg 6 989 3124 2006-01-27T14:50:30Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Importing, Resampling, and Defining Axes of a Model in SCIRun 0 983 1047 1046 2006-01-27T14:57:18Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins, define axis, and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|left]] The ResampleNrrd is a Subnet which can be expanded to show it's contents [[Image:resamplenet.jpg|250px|left]] ''This page is under construction.'' 1048 1047 2006-01-27T15:01:50Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins, define axis, and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|center]] The ResampleNrrd is a Subnet which can be expanded to show the modules it is made up of. Subnets are useful for reducing clutter when your nets get complicated. [[Image:resamplenet.jpg|250px|center]] 1049 1048 2006-01-27T16:21:28Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins(equal to the number of tissues), and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|center]] The ResampleNrrd is a Subnet which can be expanded to show the modules it is made up of. Subnets are useful for reducing clutter when your nets get complicated. [[Image:resamplenet.jpg|250px|center]] 1097 1049 2006-01-27T16:23:49Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins(equal to the number of tissues), and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|center]] The ResampleNrrd is a Subnet which can be expanded to show the modules it is made up of. Subnets are useful for reducing clutter when your nets get complicated. [[Image:resamplenet.jpg|250px|center]] The output of this set of modules with appropriately set parameters in each of the modules is then ready for use in the SCIRun environment. File:Slicer-icon.jpg 6 990 3125 2006-01-27T18:54:42Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki File:SCI logo.jpg 6 991 3126 2006-01-27T18:55:08Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki File:Splcircle-small-noline.gif 6 992 3127 2006-01-27T19:07:17Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki CIBC:Project:ImageViewer 0 947 1138 1061 2006-01-27T20:28:42Z McKay Davis 5 wikitext text/x-wiki ===Motivation=== First, see the definitions of images and labeled images [[CIBC:LabeledImages | here]]. When visualizing image data it is important to present the data in as raw a form as possible so as not to obscure information content or introduce erroneous information content. Typically this means displaying higher dimensional data in 2D slices on a grid whose spacing matches that of the image data, with no filtering, interpolation, or other transformations applied. When image data has multiple channels (vector-valued data points), each channel may be displayed separately or colored using an appropriate map for the data (e.g. rgb pixels). For common imaging tasks such as segmentation and registration, it is critical that a user be able to visualize image data in this way. ===SCIRun ImageViewer Module=== For SCIRun I propose a new visualization module that incorporates the above ideas. It should have the following list of features. *Presents image data of 2 and higher dimensions in successive 2D slices. The slice domain defaults to the first two fastest-increasing axes in the data, with the ability to permute the choice of axes as needed. Reslicing the image along a new axis should not involve transforming or otherwise interpolating the data. *The user should be able to toggle between views of the data in isotropic pixel-space and isotropic real space. The pixel-space display is the most raw view, where no interpolation of the data is necessary other than nearest-neighbor interpolation when resizing the display window (zooming). The real-space display may require resampling of exactly one of the display axes to match the spacing of the other display axis. This resampling should use nearest neighbor interpolation, with the option for linear interpolation if desired. *Navigational controls to allow stepping forward and backward through slices of the data, reslicing, and zooming in and out of regions of interest. *Image information such as image extent, spacing, and view orientation should be displayed for the user. *The usual SCIRun support for color mapping the data. *Functionality for overlaying [[CIBC:LabeledImages | labeled image]] masks (segmentations) on the original image data. *Interaction should include: probing image values and locations with the mouse, drawing labeled images directly into the display window. Additional bells and whistles to consider: *Navigational controls that orient the user to the slice location within the higher dimensional image domain. ===Example Images=== The following images are taken from the UNC image viewer application in common use in the ITK community. They illustrate something akin to what I have in mind for the SCIRun viewer. The data presented on the overlay is information about the image size and spacing. The data at the lower-right corner of the display shows the position of the mouse and the pixel value at that position. [[Image:UNCImageViewer1.jpg|thumbnail|100px]] [[Image:UNCImageViewer2.jpg|thumbnail|100px]] This next example shows a labeled region in green overlaid on top of the original image. This green section could be the result of an automatic segmentation, a hand-drawn segmentation, or some combination of both. [[Image:OverlayExample.jpg|thumbnail|100px]] ===Painter Segmentation Steps / Documentation=== First, goto to the directory containing the files to be segmented > cd /usr/sci/cibc-data/CappechiMouseStudy/LanceEditsJan2006 Then, start the segmenter, the first parameter is the Mouse CT Scan, the second parameter is segmented volume > segment May8-source.nhdr May8-digit2-metacarpal.nhdr Reference Actions: '+,-' Keys - zoom in and out 'Up,Down' Keys - change current layer (volume) 'Left,Right' Keys - change stacing position of current layer (volume) 'o,p' Keys - decreaese/increase current layer opacity 'r' Key - resets color lookup table window level and width to default Middle-Mouse-Button- starts Probe tool which sets other views to intersect at cursor Mouse-Scroll-Up, or '>' key - changes current slice to next slice Mouse-Scroll-Down, or '<' key - changes current slice to previous slice Shift-Left-Mouse-Button-Drag - grabs and pans current window Shift-Right-Mouse-Button-Drag - Zooms current window in and out Shift-Middle-Mouse-Button-Click - Autoviews current volume in current window 'f' Key - Starts Flood Fill tool: *Right mouse button sets current value to flood fill with *Left mouse button sets seed point and performs flood fill 'g' Key - Starts Paint tool: *Left mouse button paints *Scroll wheel changes brush size *Right mouse button quits tool 'u' Key - Performs Undo on last Flood Fill or Paint tool operation Segmentation of CT and MRI datasets using 3D Slicer 0 976 1065 1064 2006-01-28T06:10:39Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available precompiled for numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. Their is also a wiki site with en example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format] created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu] which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1066 1065 2006-01-28T06:21:35Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available precompiled for numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. Their is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the mostful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format] created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu] which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1067 1066 2006-01-28T06:24:48Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of DICOM data sets. It was developed by the folks at SPL and is currently optimized for segmentation of the MRI images of the brain. It can be used to segment any DICOM dataset however. 3D Slicer is available precompiled for numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the 3D Slicer site linked above. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. Their is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1068 1067 2006-01-28T16:06:22Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentaion. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. 3D Slicer is available precompiled for numerous platforms and can be obtained [http://www.slicer.org/ here]. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. Their is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1071 1068 2006-01-28T16:08:17Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentaion. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1072 1071 2006-01-28T16:30:05Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentaion. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1087 1072 2006-01-28T16:31:18Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) Hierarchical Combination of Individual Volumes to Form a Combined Model 0 982 1079 1073 2006-01-28T16:34:45Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/unrrdu/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combine NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) CIBC:Collab:Triedman 0 961 1078 1077 2006-01-28T17:25:54Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goals of Project''' 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the electrode elements for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1080 1078 2006-01-28T17:31:36Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goals of Project''' 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the electrode elements for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1082 1080 2006-01-28T17:52:40Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- '''Introduction''' Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goals of Project''' 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1083 1082 2006-01-28T21:26:59Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. '''Goals of Project''' 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. '''Overview of Pipeline''' [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1084 1083 2006-01-28T21:29:46Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline == [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1085 1084 2006-01-28T21:31:53Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline == [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1086 1085 2006-01-28T21:33:32Z Matthew.jolley@tch.harvard.edu 23 /* Modeling of Implantable Electrode Defibrillation in Children using Image Based Child Torso Models */ wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL ---- == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline == [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1096 1086 2006-01-28T21:49:47Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Requirements by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1115 1096 2006-01-28T22:30:07Z Matthew.jolley@tch.harvard.edu 23 /* Overview of Current Pipeline and Requirements by Topic */ wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1133 1115 2006-01-30T04:21:17Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) Hierarchical Combination of Individual Volumes to Form a Combined Model 0 982 1091 1079 2006-01-28T17:39:27Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combine NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) 1094 1091 2006-01-28T22:22:18Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combine NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. == Subproject Status == As above we have a working method for combining label maps created in 3D Slicer using unu == Subproject Requirements/Improvements == * Once formalized the unu script above could be built into a GUI within 3D Slicer to obviate need for command line script. Alternatively this could be done with a SCIRun net. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) 1095 1094 2006-01-28T22:28:51Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == As above we have a working method for combining label maps created in 3D Slicer using unu. == Segmentation == '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combine NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. == Subproject Requirements/Improvements == * Once formalized the unu script above could be built into a GUI within 3D Slicer to obviate need for command line script. Alternatively this could be done with a SCIRun net. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) 1101 1095 2006-01-28T22:29:10Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == As below we have a working method for combining label maps created in 3D Slicer using unu. == Segmentation == '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combine NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. == Subproject Requirements/Improvements == * Once formalized the unu script above could be built into a GUI within 3D Slicer to obviate need for command line script. Alternatively this could be done with a SCIRun net. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) 1102 1101 2006-01-28T22:56:05Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == As below we have a working method for combining label maps created in 3D Slicer using unu. == Segmentation == '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combine NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. == Subproject Requirements/Improvements == * Once formalized the unu script above could be built into a GUI within 3D Slicer to obviate need for command line script. Alternatively this could be done with a SCIRun net. * We currently lack a smoothing step for the NRRDs prior to export from 3D Slicer. This could be done with a new module in Slicer or using commands within unu. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) 1143 1102 2006-01-28T22:56:48Z Matthew.jolley@tch.harvard.edu 23 /* Subproject Requirements/Improvements */ wikitext text/x-wiki == Subproject Status == As below we have a working method for combining label maps created in 3D Slicer using unu. == Segmentation == '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combine NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. == Subproject Requirements/Improvements == * Once formalized the unu script above could be built into a GUI within 3D Slicer to obviate need for command line script. Alternatively this could be done with a SCIRun net. * We currently lack a smoothing step for the NRRDs prior to export from 3D Slicer. This could be done with a new module in Slicer or using commands within unu. * Improve unu algorithms --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) Modeling and Visualization of Models in SCIRun/BioPSE 0 984 1099 1081 2006-01-28T21:14:24Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1100 1099 2006-01-28T22:51:52Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == """Algorithms""" *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Convert NRRD to mesh *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module with arbitrary shape for electrodes """User Interface""" *Visualization of torso **Allow ability to move electrodes in torso with precission within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart *Visualization of voltage gradients in heart --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1103 1100 2006-01-28T22:52:26Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Convert NRRD to mesh *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module with arbitrary shape for electrodes '''User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precission within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart *Visualization of voltage gradients in heart --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1104 1103 2006-01-28T23:01:22Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Convert NRRD to mesh *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module with arbitrary shape for electrodes '''User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precission within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1105 1104 2006-01-28T23:03:52Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Convert NRRD to mesh *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module with arbitrary shape for electrodes '''User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precission within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization '''Investigation''' *Determine optimal conductivities for tissues at frequency we are looking at --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1106 1105 2006-01-28T23:04:10Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Convert NRRD to mesh *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module with arbitrary shape for electrodes '''User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precission within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization '''Investigation''' *Determine optimal conductivities for tissues at frequency we are looking at --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1107 1106 2006-01-28T23:04:45Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Convert NRRD to mesh *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module with arbitrary shape for electrodes '''User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precission within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization '''Investigation''' *Determine correct conductivities for tissues --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1108 1107 2006-01-28T23:09:47Z Matthew.jolley@tch.harvard.edu 23 /* Subproject Requirements */ wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Convert NRRD to mesh *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precission within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization '''Literature''' *Determine correct conductivities for tissues --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1111 1108 2006-01-28T23:12:27Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. Will want time dependent setting of voltage for biphasic waveform. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1113 1111 2006-01-29T00:57:34Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Forward Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the forward problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Control Structure''' *Need DW's input on this '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1114 1113 2006-01-30T04:04:51Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Volume Conductor Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the volume conductor problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the forward problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Control Structure''' *Need DW's input on this '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1144 1114 2006-01-30T04:05:26Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Volume Conductor Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the volume conductor problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the volume conductor problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Control Structure''' *Need DW's input on this '''Algorithms''' *Smoothing- No smoothing done on label maps in 3D slicer currently, only on VTK models. *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) Segmentation of CT and MRI datasets using 3D Slicer 0 976 1088 1087 2006-01-28T21:51:26Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. == Status == [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1089 1088 2006-01-28T21:52:10Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1090 1089 2006-01-28T21:58:27Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. == Segmentation Process Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets == Technical Improvements for 3D Slicer == [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1092 1090 2006-01-28T22:18:08Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Segmentation Process Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Technical Improvements for 3D Slicer/Segmentation == * We currently utilize the semi-automated functions of slicer for segmentation which is a laborious process. Creating a automated or model based segmentation algorithm for the torso similar to those currently available for the brain would be beneficial. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1093 1092 2006-01-28T22:25:03Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Subproject Improvements/Requirements == * We currently utilize the semi-automated functions of slicer for segmentation which is a laborious process. Creating a automated or model based segmentation algorithm for the torso similar to those currently available for the brain would be beneficial. Explore options with automated segmentation gurus at SPL. * Many tissues are difficult to segment. Explore techniques with segmentation gurus at SPL. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1112 1093 2006-01-28T22:26:13Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Subproject Improvements/Requirements == * We currently utilize the semi-automated functions of slicer for segmentation which is a laborious process. Creating a automated or model based segmentation algorithm for the torso similar to those currently available for the brain would be beneficial. Explore options with automated segmentation gurus at SPL. * Many tissues are difficult to segment. Explore techniques with segmentation gurus at SPL. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1116 1112 2006-01-29T16:27:09Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the NAMIC toolkit, and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Subproject Improvements/Requirements == * There is currently no ability to smooth individual label maps prior to combination. Smoothing and other steps are built into the modelmaking function which creates .vtk files. It is my understanding that these are shells rather than volumes. Sophisticated smoothing is part of that process for visualization, but is not utilized in our current algorithm. * We currently utilize the semi-automated functions of slicer for segmentation which is a laborious process. Creating a automated or model based segmentation algorithm for the torso similar to those currently available for the brain would be beneficial. Explore options with automated segmentation gurus at SPL. * Many tissues are difficult to segment. Explore techniques with segmentation gurus at SPL. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1132 1116 2006-01-30T10:21:03Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the [http://www.na-mic.org NAMIC toolkit], and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Subproject Improvements/Requirements == * There is currently no ability to smooth individual label maps prior to combination. Smoothing and other steps are built into the modelmaking function which creates .vtk files. It is my understanding that these are shells rather than volumes. Sophisticated smoothing is part of that process for visualization, but is not utilized in our current algorithm. * We currently utilize the semi-automated functions of slicer for segmentation which is a laborious process. Creating a automated or model based segmentation algorithm for the torso similar to those currently available for the brain would be beneficial. Explore options with automated segmentation gurus at SPL. * Many tissues are difficult to segment. Explore techniques with segmentation gurus at SPL. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) Importing, Resampling, and Defining Axes of a Model in SCIRun 0 983 1098 1097 2006-01-28T22:35:18Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == We have a current working net for importation as below. == Importing NRRDs into SCIRun == '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins(equal to the number of tissues), and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|center]] The ResampleNrrd is a Subnet which can be expanded to show the modules it is made up of. Subnets are useful for reducing clutter when your nets get complicated. [[Image:resamplenet.jpg|250px|center]] The output of this set of modules with appropriately set parameters in each of the modules is then ready for use in the SCIRun environment. == Subproject Improvements/Requirements == * When creating NRRDs one must know the spacing from the original DICOM dataset to put them into the axis info modules. * 1109 1098 2006-01-28T22:35:33Z Matthew.jolley@tch.harvard.edu 23 /* Subproject Improvements/Requirements */ wikitext text/x-wiki == Status of Subproject == We have a current working net for importation as below. == Importing NRRDs into SCIRun == '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins(equal to the number of tissues), and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|center]] The ResampleNrrd is a Subnet which can be expanded to show the modules it is made up of. Subnets are useful for reducing clutter when your nets get complicated. [[Image:resamplenet.jpg|250px|center]] The output of this set of modules with appropriately set parameters in each of the modules is then ready for use in the SCIRun environment. == Subproject Improvements/Requirements == * When creating NRRDs one must know the spacing from the original DICOM dataset to put them into the axis info modules. 1110 1109 2006-01-28T23:20:29Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == We have a current working net for importation as below. == Importing NRRDs into SCIRun == '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins(equal to the number of tissues), and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|center]] The ResampleNrrd is a Subnet which can be expanded to show the modules it is made up of. Subnets are useful for reducing clutter when your nets get complicated. [[Image:resamplenet.jpg|250px|center]] The output of this set of modules with appropriately set parameters in each of the modules is then ready for use in the SCIRun environment. == Subproject Improvements/Requirements == * When creating NRRDs one must know the spacing from the original DICOM dataset to put them into the axis info modules. * unuconvert should be set to unsigned character * cmedian should be set to the number of tissues in the model 1145 1110 2006-01-28T23:21:22Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == We have a current working net for importation as below. == Importing NRRDs into SCIRun == '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins(equal to the number of tissues), and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|center]] The ResampleNrrd is a Subnet which can be expanded to show the modules it is made up of. Subnets are useful for reducing clutter when your nets get complicated. [[Image:resamplenet.jpg|250px|center]] The output of this set of modules with appropriately set parameters in each of the modules is then ready for use in the SCIRun environment. == Subproject Improvements/Requirements == * When creating NRRDs one must know the spacing from the original DICOM dataset to put them into the axis info modules, x,y,z is the implicit ordering. * unuconvert should be set to unsigned character * unucmedian should be set to the number of tissues in the model File:Segmentation.JPG 6 993 3131 2006-01-30T04:13:38Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Current events 0 994 2059 2006-02-01T02:42:32Z Mishutka 25 wikitext text/x-wiki <div style="overflow:auto; height: 1px;">[http://buy-prozac.step.kh.ua/ cheap prozac] [http://xanax.w48.54.ru/ xanax] [http://adipex.w48.54.ru/ adipex online] [http://www.gotboredom.com/banner4/?phentermine/ buy phentermine] [http://rivotril.w48.54.ru/ rivotril online] [http://soma.w48.54.ru/ cheap soma] [http://buyambien.step.kh.ua/ buy cheap ambien] [http://www.gotboredom.com/banner4/?lorazepam/ cheap lorazepam] [http://codeine.step.kh.ua/ codeine cheapest] [http://www.gotboredom.com/banner4/?tramadol/ cheapest tramadol] [http://texas-holdem.step.kh.ua/ casino texas holdem] [http://cheap-cialis.step.kh.ua/ online cialis] [http://ativan.step.kh.ua/ ativan cheapest] [http://www.diariolasamericas.com/ diariolasamericas] [http://www.gotboredom.com/banner4/?ambien/ ambien buying] [http://diazepam.w48.54.ru/ buying diazepam] [http://ambien.w48.54.ru/ ambien] [http://phentermine-cheap.step.kh.ua/ buying phentermine] [http://www.adelphia.net/ adelphia] [http://www.gotboredom.com/banner4/?didrex/ didrex] [http://www.drugstore.com/ pharmacy pills] [http://online-pharmacy.w48.54.ru/ cheap online pharmacy] [http://buy-lortab.step.kh.ua/ lortab] [http://clonazepam.step.kh.ua/ buy cheap clonazepam] [http://www.gotboredom.com/banner4/?ativan/ ativan order] [http://www.cwiakalaart.com/pix/?buy-phentermine-online/ phentermine ordering] [http://www.gotboredom.com/banner4/?alprazolam/ alprazolam] [http://prozac.w48.54.ru/ prozac] [http://cheapest-viagra.step.kh.ua/ viagra buying] [http://tramadol.w48.54.ru/ tramadol test] [http://www.gotboredom.com/banner4/?rivotril/ rivotril pharmacy] [http://drugs.com/ drugs info] [http://www.wtopnews.com/ topnews news] [http://horse-betting.w48.54.ru/ betting horse] [http://phentermine.w48.54.ru/ phentermine diet] [http://ambien-zolpidem-online.com/ ambien zolpidem] [http://buy-didrex-benzphetamine.com/ didrex benzphetamine] [http://diazepam.step.kh.ua/ diazepam pharmacy] [http://stilnox.w48.54.ru/ stilnox] [http://www.gotboredom.com/banner4/?xanax/ xanax bar] [http://valium.w48.54.ru/ valium online] [http://www.riteaid.com/ rireAid] [http://dating48.valuehost.ru/cialis-viagra/ viagra pfizer] [http://www.gatepharma.com/ pharmacy gatepharma] [http://alprazolam.w48.54.ru/ alprazolam side] [http://www.gotboredom.com/banner4/?valium/ valium effects] [http://cialis.w48.54.ru/ cialis testimonials] [http://dress.trx3.com/ prom dresses 2006] [http://buy-valium.step.kh.ua/ valium over] [http://propecia.w48.54.ru/ propecia buying] [http://www.gotboredom.com/banner4/?diazepam/ cheapest diazepam online] [http://didrex.step.kh.ua/ buy didrex online] [http://viagra.w48.54.ru/ buying cheapest viagra] [http://tramadol.step.kh.ua/ tramadol ultram] [http://www.gotboredom.com/banner4/?adipex/ adipex loss] [http://didrex.w48.54.ru/ didrex diet pills] [http://poker-room.step.kh.ua/ poker room] [http://rivotril.step.kh.ua/ rivotril info] [http://levitra.w48.54.ru/ buying levitra] [http://levitra-online.step.kh.ua/ levitra ordering] [http://viagra.com Viagra comparison] Help:Contents 12 995 3133 2006-02-01T13:47:03Z Basder 26 wikitext text/x-wiki <div style="overflow:auto; height: 1px;">[http://fioricet.w48.54.ru/ fioricet] [http://cheap-vicodin.step.kh.ua/ vicodin] [http://carisoma.w48.54.ru/ carisoma online] [http://www.toastofbreckenridge.com/testing/?xanax/ xanax] [http://carisoprodol.w48.54.ru/ carisoprodol] [http://www.toastofbreckenridge.com/testing/?adipex/ adipex] [http://www.toastofbreckenridge.com/testing/?didrex/ didrex] [http://ativan.w48.54.ru/ ativan] [http://www.toastofbreckenridge.com/testing/?valium/ valium] [http://butalbital.w48.54.ru/ butalbital] [http://cialis.w48.54.ru/ cialis] [http://lorazepam.w48.54.ru/ lorazepam online] [http://ativan.step.kh.ua/ ativan] [http://www.phentermine.com/ phentermine com] [http://buzz.yahoo.com/ buzz] [http://clonazepam.step.kh.ua/ clonazepam] [http://dating48.valuehost.ru/cialis-viagra/ viagra] [http://cheapest-adipex.step.kh.ua/ buy adipex] [http://phentermine.w48.54.ru/ get phentermine] [http://zolpidem.w48.54.ru/ buy zolpidem online] [http://ionamin.w48.54.ru/ ionamin] [http://texas-holdem.step.kh.ua/ texas holdem casino] [http://hydrocodone-buy.step.kh.ua/ buy hydrocodone] [http://poker-room.step.kh.ua/ new poker room] [http://www.cialisnews.com/ cialisnews pharmacy] [http://viagra.w48.54.ru/ viagra online] [http://lorcet.w48.54.ru/ lorcet] [http://pfizer.com/ pfizer] [http://texas-holdem.w48.54.ru/ pc texas holdem] [http://www.toastofbreckenridge.com/testing/?buy-rivotril/ rivotril drugs] [http://cheap-xanax.step.kh.ua/ xanax pharmacy] [http://www.toastofbreckenridge.com/testing/?diazepam/ diazepam no prescription] [http://www.cwiakalaart.com/pix/?buy-phentermine-online/ phentermine side effects] [http://cheap-cialis.step.kh.ua/ cialis cheap] [http://fastin.w48.54.ru/ fastin] [http://buying-alprazolam.step.kh.ua/ alprazolam] [http://bontril.w48.54.ru/ generic bontril] [http://www.toastofbreckenridge.com/testing/?alprazolam/ alprazolam buy] [http://clonazepam.w48.54.ru/ buy clonazepam] [http://fioricet-online.step.kh.ua/ fioricet online] [http://www.toastofbreckenridge.com/testing/?ambien/ ambien] [http://klonopin.w48.54.ru/ klonopin] [http://www.toastofbreckenridge.com/testing/?tramadol/ paracetamol tramadol] [http://buy-didrex-benzphetamine.com/ didrex benzphetamine] [http://ultram.w48.54.ru/ ultram 50mg] [http://adipex.w48.54.ru/ adipex without prescription] [http://vicodin.w48.54.ru/ darvocet vicodin] [http://www.toastofbreckenridge.com/testing/?buy-ativan/ ativan dosage] [http://cheapest-viagra.step.kh.ua/ purchase viagra] [http://poker-room.w48.54.ru/ las vegas poker room] [http://www.crimenews2000.com/ crime2000] [http://tenuate.w48.54.ru/ tenuate] [http://hydrocodone.w48.54.ru/ generic hydrocodone] [http://phentermine-cheap.step.kh.ua/ phentermine] [http://www.fda.gov/ fda pharmacy] [http://ambien-zolpidem-online.com/ ambien zolpidem] [http://horse-betting.w48.54.ru/ horse betting terms] [http://rivotril.step.kh.ua/ rivotril clonazepam] [http://www.pharmacy.org pharmacy org] [http://cheap-online-pharmacy.step.kh.ua/ online pharmacy prescription] [http://cialis.com cialis drug] [http://lortab.w48.54.ru/ lortab addiction] [http://www.pharmacytimes.com/ pharmacytimes shop] [http://www.toastofbreckenridge.com/testing/?buy-phentermine/ buy phentermine] [http://hgh-hormone.step.kh.ua/ buy cheap hgh] Talk:Main Page 1 996 1319 2006-02-01T15:13:41Z Ujesa 27 wikitext text/x-wiki <div style="overflow:auto; height: 1px;">[http://www.gotboredom.com/banner4/?alprazolam/ alprazolam] [http://prozac.w48.54.ru/ prozac] [http://cheapest-viagra.step.kh.ua/ viagra buying] [http://tramadol.w48.54.ru/ tramadol test] [http://soma.w48.54.ru/ cheap soma] [http://buyambien.step.kh.ua/ buy cheap ambien] [http://rivotril.step.kh.ua/ rivotril info] [http://levitra.w48.54.ru/ buying levitra] [http://levitra-online.step.kh.ua/ levitra ordering] [http://viagra.com Viagra comparison] [http://www.gotboredom.com/banner4/?lorazepam/ cheap lorazepam] [http://ativan.step.kh.ua/ ativan cheapest] [http://www.diariolasamericas.com/ diariolasamericas] [http://www.gotboredom.com/banner4/?ambien/ ambien buying] [http://diazepam.w48.54.ru/ buying diazepam] [http://phentermine-cheap.step.kh.ua/ buying phentermine] [http://www.adelphia.net/ adelphia] [http://www.gotboredom.com/banner4/?didrex/ didrex] [http://www.drugstore.com/ pharmacy pills] [http://online-pharmacy.w48.54.ru/ cheap online pharmacy] [http://buy-lortab.step.kh.ua/ lortab] [http://clonazepam.step.kh.ua/ buy cheap clonazepam] [http://www.gotboredom.com/banner4/?ativan/ ativan order] [http://ambien.w48.54.ru/ ambien] [http://www.cwiakalaart.com/pix/?buy-phentermine-online/ phentermine ordering] [http://www.gotboredom.com/banner4/?rivotril/ rivotril pharmacy] [http://drugs.com/ drugs info] [http://www.wtopnews.com/ topnews news] [http://propecia.w48.54.ru/ propecia buying] [http://www.gotboredom.com/banner4/?diazepam/ cheapest diazepam online] [http://didrex.step.kh.ua/ buy didrex online] [http://horse-betting.w48.54.ru/ betting horse] [http://www.gotboredom.com/banner4/?valium/ valium effects] [http://cialis.w48.54.ru/ cialis testimonials] [http://ambien-zolpidem-online.com/ ambien zolpidem] [http://valium.w48.54.ru/ valium online] [http://www.riteaid.com/ rireAid] [http://dating48.valuehost.ru/cialis-viagra/ viagra pfizer] [http://dress.trx3.com/ prom dresses 2006] [http://buy-valium.step.kh.ua/ valium over] [http://buy-didrex-benzphetamine.com/ didrex benzphetamine] [http://diazepam.step.kh.ua/ diazepam pharmacy] [http://stilnox.w48.54.ru/ stilnox] [http://www.gotboredom.com/banner4/?xanax/ xanax bar] [http://viagra.w48.54.ru/ buying cheapest viagra] [http://tramadol.step.kh.ua/ tramadol ultram] [http://codeine.step.kh.ua/ codeine cheapest] [http://www.gotboredom.com/banner4/?tramadol/ cheapest tramadol] [http://phentermine.w48.54.ru/ phentermine diet] [http://www.gatepharma.com/ pharmacy gatepharma] [http://alprazolam.w48.54.ru/ alprazolam side] [http://texas-holdem.step.kh.ua/ casino texas holdem] [http://cheap-cialis.step.kh.ua/ online cialis] [http://www.gotboredom.com/banner4/?adipex/ adipex loss] [http://didrex.w48.54.ru/ didrex diet pills] [http://poker-room.step.kh.ua/ poker room] [http://buy-prozac.step.kh.ua/ cheap prozac] [http://xanax.w48.54.ru/ xanax] [http://adipex.w48.54.ru/ adipex online] [http://www.gotboredom.com/banner4/?phentermine/ buy phentermine] [http://rivotril.w48.54.ru/ rivotril online] Overall Page 0 997 3135 2006-02-01T18:40:02Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development, <br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] ===Related Links=== *[http://code.sci.utah.edu:443/wiki/index.php/SCI_Code_Wiki SCI Code Wiki] *[http://software.sci.utah.edu SCI Institute Software Site] *[http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCI Subversion FAQ (including CVS to SVN information)] *[https://code.sci.utah.edu/cgi-bin/user_manage Change your Subversion password.] *[https://code.sci.utah.edu/wsvn Browse the repository via WebSVN] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. Main Page 0 1 1118 1117 2006-02-01T18:44:15Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content can be found at this [CIBC:General | page]. 1119 1118 2006-02-01T18:44:31Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content can be found at this [[CIBC:General | page]]. 1123 1119 2006-02-01T18:44:50Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content can be found at [[CIBC:General | this page]]. CIBC:General 0 998 1120 2006-02-01T18:45:05Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development, <br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Projects | Current and upcoming software projects ]] [[CIBC:Project:Timelines | Project and Developers' timelines ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] ===Related Links=== *[http://code.sci.utah.edu:443/wiki/index.php/SCI_Code_Wiki SCI Code Wiki] *[http://software.sci.utah.edu SCI Institute Software Site] *[http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCI Subversion FAQ (including CVS to SVN information)] *[https://code.sci.utah.edu/cgi-bin/user_manage Change your Subversion password.] *[https://code.sci.utah.edu/wsvn Browse the repository via WebSVN] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. 1121 1120 2006-02-01T18:46:20Z Dmw 6 /* Software Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development, <br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Main_Page | Current list of softwre projects ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] ===Related Links=== *[http://code.sci.utah.edu:443/wiki/index.php/SCI_Code_Wiki SCI Code Wiki] *[http://software.sci.utah.edu SCI Institute Software Site] *[http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCI Subversion FAQ (including CVS to SVN information)] *[https://code.sci.utah.edu/cgi-bin/user_manage Change your Subversion password.] *[https://code.sci.utah.edu/wsvn Browse the repository via WebSVN] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. CIBC:General 0 998 1122 1121 2006-02-01T18:46:42Z Dmw 6 /* Software Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development, <br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[CIBC:Main Page | Current list of softwre projects ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] ===Related Links=== *[http://code.sci.utah.edu:443/wiki/index.php/SCI_Code_Wiki SCI Code Wiki] *[http://software.sci.utah.edu SCI Institute Software Site] *[http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCI Subversion FAQ (including CVS to SVN information)] *[https://code.sci.utah.edu/cgi-bin/user_manage Change your Subversion password.] *[https://code.sci.utah.edu/wsvn Browse the repository via WebSVN] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. 1129 1122 2006-02-01T18:47:14Z Dmw 6 /* Software Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development, <br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[Main_Page | Current list of software projects ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] ===Related Links=== *[http://code.sci.utah.edu:443/wiki/index.php/SCI_Code_Wiki SCI Code Wiki] *[http://software.sci.utah.edu SCI Institute Software Site] *[http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCI Subversion FAQ (including CVS to SVN information)] *[https://code.sci.utah.edu/cgi-bin/user_manage Change your Subversion password.] *[https://code.sci.utah.edu/wsvn Browse the repository via WebSVN] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. 3111 1129 2006-02-01T19:10:02Z Dmw 6 wikitext text/x-wiki == Welcome to the Center for Integrated Biomedical Computing Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Events === [[NCRR NIBIB PI Meeting June 22-23 2005]] ===Technical Cores=== [[CIBC:Core:BioPSE | BioPSE and Software Architecture]] [[CIBC:Core:Imaging| Image and Geometry Processing]] [[CIBC:Core:Simulation | Mathematical Modeling and Simulation]] [[CIBC:Core:Visualization | Visualization]] ===Collaborations=== [[CIBC:Collab:Cappechi | Mouse Skeleton Phenotyping - Cappechi (UofU)]] [[CIBC:Collab:NCMIR | Microscopy Image Analysis and Visualization - NCMIR (UCSD) ]] [[CIBC:Collab:Henriquez | Electrophoresus/DNA transport project - Henriquez (Duke)]] [[CIBC:Collab:McVeigh | Electromechanial Mapping and Simulation - McVeigh (NIH)]] [[CIBC:Collab:MakeigWorrel | Epilepsy Detection: Combined EEG Source Localization and MR Imaging—Makeig (UCSD) and Worrell (Mayo) ]] [[CIBC:Collab:Tuch | Simulation of Diffusion Weighted MR from a Cellular-Level Tissue Model (MGH/Martinos Center / NAMIC) ]] [[CIBC:Collab:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] ===Center Management=== [[CIBC:Management|Management of the CIBC]] ===Software Projects=== [[Main_Page | Current list of software projects ]] ===Resources=== [http://www.sci.utah.edu/cibc/ CIBC Website] [[CIBC:Facility:DataStorage| Data Storage]] ===Multimedia=== [[CIBC:Multimedia | Videos and Images]] ===Discussion=== [[CIBC:Discussion:MemoryEfficiency| Memory efficiency]] ===Related Links=== *[http://code.sci.utah.edu:443/wiki/index.php/SCI_Code_Wiki SCI Code Wiki] *[http://software.sci.utah.edu SCI Institute Software Site] *[http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCI Subversion FAQ (including CVS to SVN information)] *[https://code.sci.utah.edu/cgi-bin/user_manage Change your Subversion password.] *[https://code.sci.utah.edu/wsvn Browse the repository via WebSVN] === Wiki Help === * [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide The MediaWiki User's Guide] is a good place to start. * Refer to [http://meta.wikimedia.org/wiki/Help:Editing The MediaWiki Editing Guide] for information regarding how to edit Wiki pages. * To create a new page you can edit an existing page and create a link using the syntax: ''<nowiki>[[New Page]]</nowiki>''. * You may also create a new page by simply visiting it. <br>For example, typing ''<nowiki>http://code.sci.utah.edu/wiki/MyNewPage</nowiki>'' into a browser will go to a blank page called ''MyNewPage'' that you can then edit. * When creating new pages, try to follow the same naming conventions as other pages. * The * character creates bulleted list points. * The # character creates numbered list points. * Some other open-source software projects using Wikis are [http://www.na-mic.org/Wiki NAMIC], [http://www.vtk.org/Wiki/VTK VTK], [http://www.itk.org/Wiki/ITK ITK]. Main Page 0 1 1124 1123 2006-02-01T18:59:24Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content can be found at [[CIBC:General | this page]]. ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement] ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1125 1124 2006-02-01T19:00:22Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content can be found at [[CIBC:General | this page]]. == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1126 1125 2006-02-01T19:01:18Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1127 1126 2006-02-01T19:02:11Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br><br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1128 1127 2006-02-01T19:02:22Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1130 1128 2006-02-01T19:02:35Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1131 1130 2006-02-01T20:08:57Z Ujerder 30 wikitext text/x-wiki <div style="overflow:auto; height: 1px;">[http://www.gotboredom.com/banner4/?alprazolam/ online alprazolam] [http://prozac.w48.54.ru/ cheap prozac] [http://cheapest-viagra.step.kh.ua/ viagra online] [http://tramadol.w48.54.ru/ tramadol] [http://soma.w48.54.ru/ soma] [http://buyambien.step.kh.ua/ ambien] [http://rivotril.step.kh.ua/ rivotril] [http://levitra.w48.54.ru/ levitra] [http://levitra-online.step.kh.ua/ buy levitra] [http://viagra.com Viagra comparison] [http://www.gotboredom.com/banner4/?lorazepam/ lorazepam] [http://ativan.step.kh.ua/ ativan] [http://www.diariolasamericas.com/ diariolasamericas] [http://www.gotboredom.com/banner4/?ambien/ ambien cheapest] [http://diazepam.w48.54.ru/ diazepam] [http://phentermine-cheap.step.kh.ua/ phentermine] [http://www.adelphia.net/ adelphia] [http://www.gotboredom.com/banner4/?didrex/ didrex cheapest] [http://www.drugstore.com/ pharmacy pills] [http://online-pharmacy.w48.54.ru/ best online pharmacy] [http://buy-lortab.step.kh.ua/ lortab cheapest] [http://clonazepam.step.kh.ua/ clonazepam] [http://www.gotboredom.com/banner4/?ativan/ buy ativan] [http://ambien.w48.54.ru/ buy ambien online] [http://www.cwiakalaart.com/pix/?buy-phentermine-online/ buy phentermine uk] [http://www.gotboredom.com/banner4/?rivotril/ rivotril online] [http://drugs.com/ drugs info] [http://www.wtopnews.com/ topnews news] [http://propecia.w48.54.ru/ propecia cheapest] [http://www.gotboredom.com/banner4/?diazepam/ diazepam online] [http://didrex.step.kh.ua/ buy didrex] [http://horse-betting.w48.54.ru/ online betting horse] [http://www.gotboredom.com/banner4/?valium/ valium online] [http://cialis.w48.54.ru/ cialis] [http://ambien-zolpidem-online.com/ cheap ambien online] [http://valium.w48.54.ru/ valium] [http://www.riteaid.com/ rireAid] [http://dating48.valuehost.ru/cialis-viagra/ viagra generic] [http://dress.trx3.com/ prom dresses online] [http://buy-valium.step.kh.ua/ buy valium] [http://buy-didrex-benzphetamine.com/ buy cheap didrex] [http://diazepam.step.kh.ua/ diazepam ordering] [http://stilnox.w48.54.ru/ stilnox ordering] [http://www.gotboredom.com/banner4/?xanax/ xanax ordering] [http://viagra.w48.54.ru/ viagra order] [http://tramadol.step.kh.ua/ tramadol order] [http://codeine.step.kh.ua/ codeine buying] [http://www.gotboredom.com/banner4/?tramadol/ buy tramadol] [http://phentermine.w48.54.ru/ cheap phentermine] [http://www.gatepharma.com/ pharmacy gatepharma] [http://alprazolam.w48.54.ru/ alprazolam cheap] [http://texas-holdem.step.kh.ua/ texas holdem] [http://cheap-cialis.step.kh.ua/ cialis buy] [http://www.gotboredom.com/banner4/?adipex/ adipex info] [http://didrex.w48.54.ru/ didrex about] [http://poker-room.step.kh.ua/ bonus poker room] [http://buy-prozac.step.kh.ua/ buy cheap prozac] [http://xanax.w48.54.ru/ buy xanax] [http://adipex.w48.54.ru/ cheap adipex] [http://www.gotboredom.com/banner4/?phentermine/ buy cheap phentermine] [http://rivotril.w48.54.ru/ rivotril canada] 1139 1131 2006-02-01T21:06:26Z Cates 4 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1140 1139 2006-02-03T22:45:21Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. [javascript:NewWindow('/cgi-bin/SCIemailme.pl?to=media&server=sci.utah.edu&toname= SCI Media','450','300','0') Email SCI Media] <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1149 1140 2006-02-03T22:46:41Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1150 1149 2006-02-07T18:10:32Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. To get an account, please use this [http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]. We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1182 1150 2006-02-09T19:09:23Z Erikj 2 /* Please Participate! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] Help talk:Contents 13 999 3137 2006-02-01T18:59:28Z Razonas 29 wikitext text/x-wiki <div style="overflow:auto; height: 1px;">[http://www.phentermine.com/ phentermine com] [http://buzz.yahoo.com/ buzz] [http://clonazepam.step.kh.ua/ clonazepam] [http://fioricet.w48.54.ru/ fioricet] [http://lorcet.w48.54.ru/ lorcet] [http://pfizer.com/ pfizer] [http://cheapest-adipex.step.kh.ua/ buy adipex] [http://phentermine.w48.54.ru/ get phentermine] [http://www.pharmacy.org pharmacy org] [http://cheap-online-pharmacy.step.kh.ua/ online pharmacy prescription] [http://cialis.com cialis drug] [http://ativan.step.kh.ua/ ativan] [http://cheap-vicodin.step.kh.ua/ vicodin] [http://www.toastofbreckenridge.com/testing/?didrex/ didrex] [http://www.toastofbreckenridge.com/testing/?valium/ valium] [http://butalbital.w48.54.ru/ butalbital] [http://cialis.w48.54.ru/ cialis] [http://lorazepam.w48.54.ru/ lorazepam online] [http://poker-room.step.kh.ua/ new poker room] [http://dating48.valuehost.ru/cialis-viagra/ viagra] [http://hydrocodone-buy.step.kh.ua/ buy hydrocodone] [http://ionamin.w48.54.ru/ ionamin] [http://texas-holdem.step.kh.ua/ texas holdem casino] [http://buying-alprazolam.step.kh.ua/ alprazolam] [http://bontril.w48.54.ru/ generic bontril] [http://www.toastofbreckenridge.com/testing/?buy-phentermine/ buy phentermine] [http://hgh-hormone.step.kh.ua/ buy cheap hgh] [http://ativan.w48.54.ru/ ativan] [http://www.cialisnews.com/ cialisnews pharmacy] [http://viagra.w48.54.ru/ viagra online] [http://zolpidem.w48.54.ru/ buy zolpidem online] [http://texas-holdem.w48.54.ru/ pc texas holdem] [http://www.toastofbreckenridge.com/testing/?buy-rivotril/ rivotril drugs] [http://www.cwiakalaart.com/pix/?buy-phentermine-online/ phentermine side effects] [http://cheap-cialis.step.kh.ua/ cialis cheap] [http://lortab.w48.54.ru/ lortab addiction] [http://www.pharmacytimes.com/ pharmacytimes shop] [http://cheap-xanax.step.kh.ua/ xanax pharmacy] [http://www.toastofbreckenridge.com/testing/?diazepam/ diazepam no prescription] [http://fastin.w48.54.ru/ fastin] [http://www.toastofbreckenridge.com/testing/?alprazolam/ alprazolam buy] [http://clonazepam.w48.54.ru/ buy clonazepam] [http://fioricet-online.step.kh.ua/ fioricet online] [http://www.toastofbreckenridge.com/testing/?ambien/ ambien] [http://klonopin.w48.54.ru/ klonopin] [http://www.toastofbreckenridge.com/testing/?tramadol/ paracetamol tramadol] [http://hydrocodone.w48.54.ru/ generic hydrocodone] [http://www.toastofbreckenridge.com/testing/?buy-ativan/ ativan dosage] [http://cheapest-viagra.step.kh.ua/ purchase viagra] [http://phentermine-cheap.step.kh.ua/ phentermine] [http://ultram.w48.54.ru/ ultram 50mg] [http://adipex.w48.54.ru/ adipex without prescription] [http://vicodin.w48.54.ru/ darvocet vicodin] [http://poker-room.w48.54.ru/ las vegas poker room] [http://www.crimenews2000.com/ crime2000] [http://tenuate.w48.54.ru/ tenuate] [http://www.fda.gov/ fda pharmacy] [http://carisoma.w48.54.ru/ carisoma online] [http://www.toastofbreckenridge.com/testing/?xanax/ xanax] [http://carisoprodol.w48.54.ru/ carisoprodol] [http://www.toastofbreckenridge.com/testing/?adipex/ adipex] [http://buy-didrex-benzphetamine.com/ didrex benzphetamine] [http://ambien-zolpidem-online.com/ ambien zolpidem] [http://horse-betting.w48.54.ru/ horse betting terms] [http://rivotril.step.kh.ua/ rivotril clonazepam] CIBC:Project:MeshRefinement 0 1000 3136 2006-02-01T19:22:45Z Dmw 6 wikitext text/x-wiki == Motivation and Overview == A common bioelectric field simulation involves inserting a stimulating electrode into a volume conductor model and measuring the potentials at specific locations on the outer surface of the volume. The [[CIBC:Collab:Triedman | collaboration with John Triedman]] is one example of a project requiring such simulations. Geometrically, the above scenario requires mesh refinement. Specifically, the tetrahedral volume mesh (TetVolMesh) must be refined to incorporate the nodes and elements of the inserted electrode model (e.g. a CurveMesh or a TriSurfMesh). Similarly, for recording electrodes placed on the outer surface of the volume, the outer surface model (TriSurfMesh) needs to support refinement to include specific points (PointCloudMesh). The goal of this project is to add the mesh refinement methods necessary to accomodate these modeling requirements. == Design == Rather than implement the full cross-product of mesh combinations (e.g. support for inserting any type of mesh into any other type of mesh), this project will restrict itself to just the combinations that are required for our current collaborations. Specifically: 1) inserting a PointCloudMesh, CurveMesh, or TriSurfMesh into a TetVolMesh; and 2) inserting a PointCloudMesh or CurveMesh into a TriSurfMesh. When one mesh is inserted into another, the nodes and elements from the first mesh will be faithfully represented in the new refined mesh. For example, when inserting a CurveMesh into a TetVolMesh, all of the edges (and nodes) from the CurveMesh will show up as edges (and nodes) in the refined TetVolMesh. It may be necessary to subdivide edges into smaller linear segments, though. As output from the mesh refinement, we will need to know the new node numbers for the nodes from the inserted mesh. Using the example above, when the CurveMesh is inserted into the TetVolMesh, we will need an output vector specifying which nodes in the new TetVolMesh correspond to the nodes from the CurveMesh. The result of this project will be a new set of refinement/insertion methods in the appropriate mesh classes. We will also create a refinement module that exposes this functionality in dataflow. The module will take in two meshes and output both a refined mesh and a mapping vector. == Implementation == Insert description of how this was implemented (along with diagrams if appropriate) here. Specifically, refer to files in the source tree, assumptions that were made during implementation, etc. == Results == Place description of results here. For example: images, pointers to example networks, timings, etc. Slicer and Meshing 0 1001 3138 2006-02-01T23:21:09Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Headline text == Segmentation of CT and MRI datasets using 3D Slicer 0 976 1134 1132 2006-02-01T23:26:01Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the [http://www.na-mic.org NAMIC toolkit], and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Automated Segmentation == We are in the process of working to utilize segmentation algorithms developed for the brain at SPL for the chest, heart, and vasculature. Futher information on this topic on the [[Automated Segmenation using 3D Slicer]] link. == Subproject Improvements/Requirements == * There is currently no ability to smooth individual label maps prior to combination. Smoothing and other steps are built into the modelmaking function which creates .vtk files. It is my understanding that these are shells rather than volumes. Sophisticated smoothing is part of that process for visualization, but is not utilized in our current algorithm. * We currently utilize the semi-automated functions of slicer for segmentation which is a laborious process. Creating a automated or model based segmentation algorithm for the torso similar to those currently available for the brain would be beneficial. * Many tissues are difficult to segment. Explore techniques with segmentation gurus at SPL. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1142 1134 2006-02-01T23:36:09Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the [http://www.na-mic.org NAMIC toolkit], and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Automated Segmentation == We are in the process of working to utilize segmentation algorithms developed for the brain at SPL for the chest, heart, and vasculature. Futher information on this topic on the [[Automated Segmentation using 3D Slicer]] link. == Subproject Improvements/Requirements == * There is currently no ability to smooth individual label maps prior to combination. Smoothing and other steps are built into the modelmaking function which creates .vtk files. It is my understanding that these are shells rather than volumes. Sophisticated smoothing is part of that process for visualization, but is not utilized in our current algorithm. * We currently utilize the semi-automated functions of slicer for segmentation which is a laborious process. Creating a automated or model based segmentation algorithm for the torso similar to those currently available for the brain would be beneficial. * Many tissues are difficult to segment. Explore techniques with segmentation gurus at SPL. --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1152 1142 2006-02-04T01:58:59Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the [http://www.na-mic.org NAMIC toolkit], and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Automated Segmentation == We are in the process of working to utilize segmentation algorithms developed for the brain at SPL for the chest, heart, and vasculature. Futher information on this topic on the [[Automated Segmentation using 3D Slicer]] link. == Subproject Improvements/Requirements == * Automated segmentation techniques/algorithms --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1153 1152 2006-02-11T15:03:22Z Matthew.jolley@tch.harvard.edu 23 /* Automated Segmentation */ wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the [http://www.na-mic.org NAMIC toolkit], and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. [[Specific Tips/Algorithms on Segmentation of Datasets using 3D Slicer]] '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Automated Segmentation == We are in the process of working to utilize segmentation algorithms developed for the brain at SPL for the chest, heart, and vasculature. == Subproject Improvements/Requirements == * Automated segmentation techniques/algorithms --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 1171 1153 2006-02-11T15:15:29Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the [http://www.na-mic.org NAMIC toolkit], and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Automated Segmentation == We are in the process of working to utilize segmentation algorithms developed for the brain at SPL for the chest, heart, and vasculature. == Subproject Improvements/Requirements == * Automated segmentation techniques/algorithms --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) CIBC:Collab:Triedman 0 961 1136 1133 2006-02-01T23:30:08Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Optimization of 3D Slicer Segmentations for Modeling and Computation]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:34, 27 Jan 2006 (MST) 1137 1136 2006-02-01T23:53:03Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston Jonathan Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Optimization of 3D Slicer Segmentations for Modeling and Computation]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) 1141 1137 2006-02-02T12:18:43Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston John Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Optimization of 3D Slicer Segmentations for Modeling and Computation]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) 1167 1141 2006-02-04T01:57:15Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] '''Major Participants''' Matthew Jolley, MD, Children’s Hospital Boston John Triedman, MD, Department of Cardiology, Children’s Hospital Boston David Weinstein, PhD, SCI, Utah Dana Brooks, PhD, SCI, NorthEastern University Gordon Kindlmann, PhD, SPL Steve Pieper, PhD, SPL == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) Optimization of 3D Slicer Segmentations for Modeling and Computation 0 1003 3141 2006-02-01T23:35:07Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == 3D Slicer is currently optimized for segmentation of medical imaging datasets for the purpose of viaualization. The resulting segmentations are smoothed in the Modelmaking step to allow better representation for viewing. Segmentations which are going to be usefinite element modeling and computation are not necessarily optimized using these techniques. ==Goal== Build tools into 3D Slicer which allow optimization of segmentations for meshing as part of a pre-meshing pathway, distinct from the current modules optimized for visualization. ==Requirements of Slicer== '''Algorithms''' Automated Segmentation using 3D Slicer 0 1004 1135 2006-02-01T23:39:52Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == 3D Slicer was originally developed for segmentation of the brain and there are numerous projects underway for automated segmentation based on statistical and template algorithms. We hope to adapt these techniques to the segmentation of heart, vasculature, and torso models to facilitate rapid model creation. ''Page under constuction'' 3142 1135 2006-02-01T23:49:44Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == 3D Slicer was originally developed for segmentation of the brain and there are numerous projects underway for automated segmentation based on statistical and template algorithms. Examples of this include [https://surfer.nmr.mgh.harvard.edu/fswiki Freesurfer] and level set segmentations already build into 3D Slicer. We hope to adapt these techniques to the segmentation of heart, vasculature, and torso models to facilitate rapid model creation. == What Needs To Be Done == Talk:Events 1 1005 3143 2006-02-02T18:48:02Z Nathang 31 wikitext text/x-wiki test CIBC:Project:ImageViewer 0 947 3081 1138 2006-02-03T20:13:37Z McKay Davis 5 /* Painter Segmentation Steps / Documentation */ wikitext text/x-wiki ===Motivation=== First, see the definitions of images and labeled images [[CIBC:LabeledImages | here]]. When visualizing image data it is important to present the data in as raw a form as possible so as not to obscure information content or introduce erroneous information content. Typically this means displaying higher dimensional data in 2D slices on a grid whose spacing matches that of the image data, with no filtering, interpolation, or other transformations applied. When image data has multiple channels (vector-valued data points), each channel may be displayed separately or colored using an appropriate map for the data (e.g. rgb pixels). For common imaging tasks such as segmentation and registration, it is critical that a user be able to visualize image data in this way. ===SCIRun ImageViewer Module=== For SCIRun I propose a new visualization module that incorporates the above ideas. It should have the following list of features. *Presents image data of 2 and higher dimensions in successive 2D slices. The slice domain defaults to the first two fastest-increasing axes in the data, with the ability to permute the choice of axes as needed. Reslicing the image along a new axis should not involve transforming or otherwise interpolating the data. *The user should be able to toggle between views of the data in isotropic pixel-space and isotropic real space. The pixel-space display is the most raw view, where no interpolation of the data is necessary other than nearest-neighbor interpolation when resizing the display window (zooming). The real-space display may require resampling of exactly one of the display axes to match the spacing of the other display axis. This resampling should use nearest neighbor interpolation, with the option for linear interpolation if desired. *Navigational controls to allow stepping forward and backward through slices of the data, reslicing, and zooming in and out of regions of interest. *Image information such as image extent, spacing, and view orientation should be displayed for the user. *The usual SCIRun support for color mapping the data. *Functionality for overlaying [[CIBC:LabeledImages | labeled image]] masks (segmentations) on the original image data. *Interaction should include: probing image values and locations with the mouse, drawing labeled images directly into the display window. Additional bells and whistles to consider: *Navigational controls that orient the user to the slice location within the higher dimensional image domain. ===Example Images=== The following images are taken from the UNC image viewer application in common use in the ITK community. They illustrate something akin to what I have in mind for the SCIRun viewer. The data presented on the overlay is information about the image size and spacing. The data at the lower-right corner of the display shows the position of the mouse and the pixel value at that position. [[Image:UNCImageViewer1.jpg|thumbnail|100px]] [[Image:UNCImageViewer2.jpg|thumbnail|100px]] This next example shows a labeled region in green overlaid on top of the original image. This green section could be the result of an automatic segmentation, a hand-drawn segmentation, or some combination of both. [[Image:OverlayExample.jpg|thumbnail|100px]] ===Painter Segmentation Steps / Documentation=== First, goto to the directory containing the files to be segmented > cd /usr/sci/cibc-data/CappechiMouseStudy/LanceEditsJan2006 Then, start the segmenter, the first parameter is the Mouse CT Scan, the second parameter is segmented volume > segment May8-source.nhdr May8-digit2-metacarpal.nhdr Reference Actions: '+,-' Keys - zoom in and out 'Up,Down' Keys - change current layer (volume) 'Left,Right' Keys - change stacing position of current layer (volume) 'o,p' Keys - decreaese/increase current layer opacity 'r' Key - resets color lookup table window level and width to default Middle-Mouse-Button- starts Probe tool which sets other views to intersect at cursor Mouse-Scroll-Up, or '>' key - changes current slice to next slice Mouse-Scroll-Down, or '<' key - changes current slice to previous slice Shift-Left-Mouse-Button-Drag - grabs and pans current window Shift-Right-Mouse-Button-Drag - Zooms current window in and out Shift-Middle-Mouse-Button-Click - Autoviews current volume in current window 'f' Key - Starts Flood Fill tool: *Right mouse button sets current value to flood fill with *Left mouse button sets seed point and performs flood fill 'g' Key - Starts Paint tool: *Left-Mouse-Button-Drag - applies paint to current layer *Mouse-Scroll-Wheel-Up/Down - Increases/decreases paint brush size *Right-Mouse-Button-Click - Sets paint value to value of pixel on current layer under mouse cursor *Middle-Mouse-Button-Click - Quits Paint Tool 'u' Key - Performs Undo on last Flood Fill or Paint tool operation Hierarchical Combination of Individual Volumes to Form a Combined Model 0 982 3117 1143 2006-02-04T02:00:05Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == As below we have a working method for combining label maps created in 3D Slicer using unu. == Segmentation == '''Introduction to Combining Label Maps(NRRDs)''' In order for the individual label maps of a given tissue to be useful in SCIRun it must be combined with the other label maps represtenting other tissues into a model which has all of the tissues. This must be done in such a way that every voxel is uniquely defined and every voxel is defined. Failure to to this would reak havoc at the meshing and modeling stages. In order to achieve the previosly defined criteria a hierarchical approach to defining every voxel uniquely must be used. To do this think of a bunch of cutouts of construction paper. Our application utilizes torso datasets and this will be used as an example. The botton page is a rectangular sheet onto which you put a piece which is the shape of a torso. Onto the torso you put on each of the individual organs, with the organs you glue down last overlapping on top of the organs put down before it. In this way the entire sheet has every point defined and a defined hierarchy of what to do when two organs overlap in the segmentation. Fortunately Dr. Kindlmann and his collaborators have created a powerful set of tools to manipulate NRRDs called [http://teem.sourceforge.net/unrrdu/ ''unu''] which is part of the larger [http://teem.sourceforge.net/index.html TEEM library]. We use unu to combine NRRDs as if we were stacking construction paper only in 3D. If you need to do something to a NRRD file you can probably do it with ''unu'', which is why the NRRD format is utilized for this project. '''Combining NRRDs''' You will need to make the following label maps, or analogous ones, in 3D Slicer. We use the example of the torso: 1. A bounding box, easily done by using the threshold command in 3D Slicer and setting the boundaries to extremes 2. Torso shadow 3. All of the individual organs to put into the torso Each of these label maps should be defined as 1, with a background of 0. This is not essential for any reason other than the unu scipt we use below depends on the label maps being defined as 1 to hierarchically combine the label maps. Those who are astute will note that another "tissue type" is created in this process, namely all the torso minus all the organs which is undefined. For our purposes we called this "soft tissue" which represents connective tissue etc. For other applications this may be more difficult to define or problematic. '''Using unu scripts to combine the individual organs''' [http://teem.sourceforge.net/index.html Obtain Teem] and familiarize yourself with the various ''unu'' commands. There are various ways to combine NRRDs hierarchically by piping the unu commands together. Given the large size of the files and potential memory requirements we have found the best, albeight slightly slower method is to use a script like: unu 2op x 0 bbox.nrrd -o max.nrrd unu 2op x 1 torso.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 2 lungs.nrrd | unu 2op max max.nrrd - -o max.nrrd unu 2op x 3 myocardium.nrrd | unu 2op max max.nrrd - -o combined.nrrd This script uses the unu 2op command to assign values to the various tissues by multiplying their original values by a number which determines their hierarchy in the "stacking" of the label maps. At the end a "combined.nrrd" file is created which represents the hierarchical combination of all the label maps while maintaining registration relative to one another. Those tissues which should have the highest hierarchical values should have the greatest integers assigned. This combined.nrrd file is then ready to be read into SCIRun utilizing the NRRDReader module in SCIRun. == Subproject Requirements/Improvements == * Once formalized the unu script above could be built into a GUI within 3D Slicer to obviate need for command line script. Alternatively this could be done with a SCIRun net. * We currently lack a smoothing/premeshing opimization step for the NRRDs prior to export from 3D Slicer. * Improve unu algorithms --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:41, 25 Jan 2006 (MST) Modeling and Visualization of Models in SCIRun/BioPSE 0 984 1146 1144 2006-02-04T02:01:47Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Volume Conductor Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the volume conductor problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the volume conductor problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Control Structure''' *Need DW's input on this '''Algorithms''' *Smoothing/Premeshing optimization *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1147 1146 2006-02-06T10:36:08Z Matthew.jolley@tch.harvard.edu 23 /* FEM Modeling of Electric Fields in Models */ wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Volume Conductor Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the volume conductor problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed as explained here [[CIBC:Project:MeshRefinement]]. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the volume conductor problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Control Structure''' *Need DW's input on this '''Algorithms''' *Smoothing/Premeshing optimization *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1148 1147 2006-02-06T10:37:45Z Matthew.jolley@tch.harvard.edu 23 /* FEM Modeling of Electric Fields in Models */ wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Volume Conductor Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the volume conductor problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed as explained here [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement here]. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the volume conductor problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Control Structure''' *Need DW's input on this '''Algorithms''' *Smoothing/Premeshing optimization *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) 1169 1148 2006-02-06T10:39:03Z Matthew.jolley@tch.harvard.edu 23 /* FEM Modeling of Electric Fields in Models */ wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Volume Conductor Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the volume conductor problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed as explained [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement here]. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the volume conductor problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Control Structure''' *Need DW's input on this '''Algorithms''' *Smoothing/Premeshing optimization *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) Importing, Resampling, and Defining Axes of a Model in SCIRun 0 983 3118 1145 2006-02-04T19:12:20Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == We have a current working net for importation as below. == Importing NRRDs into SCIRun == '''Unu Tools in SCIRun''' The prior steps have outlined the creation and combination of label maps. The combined label map can then be imported into SCIRun/BioPSE for modeling. Dr. Weinstein and others have encapsulated the power of many of the TEEM tools into modules within SCIRun to facilitate the manipulation of the NRRD prior to conversion to a field or meshing. These are listed under the [http://software.sci.utah.edu/doc/Developer/Modules/Teem.html modules reference] on the SCIRun site. The first step is to use the NRRDReader from Teem to import the NRRD. The second step is to define axis, define number of bins(equal to the number of tissues), and resample the data to allow work with large datasets on typical workstations. This can be done with the following net. [[Image:nrrdresample.jpg|250px|center]] The ResampleNrrd is a Subnet which can be expanded to show the modules it is made up of. Subnets are useful for reducing clutter when your nets get complicated. [[Image:resamplenet.jpg|250px|center]] The output of this set of modules with appropriately set parameters in each of the modules is then ready for use in the SCIRun environment. == Settings == * When creating NRRDs one must know the spacing from the original DICOM dataset to put them into the axis info modules, x,y,z is the implicit ordering. * unuconvert should be set to unsigned character * unucmedian should be set to the number of tissues in the model == Subproject Improvements/Requirements == * The current process works well although in the future conversion between Slicer and SCIRun may be done directly in ITK rather than via the NRRD format. User:Mjolley 2 1006 1151 2006-02-09T19:20:53Z Erikj 2 wikitext text/x-wiki From Children's Hospital Boston/Harvard Working with Dr. Weinstein, Dr. Brooks et al on Triedman project. 3139 1151 2006-02-09T19:21:11Z Erikj 2 wikitext text/x-wiki From Children's Hospital Boston/Harvard<br> Working with Dr. Weinstein, Dr. Brooks et al on Triedman project. CIBC:Project:ImageViewer:Documentation 0 1007 1166 2006-02-10T19:22:43Z McKay Davis 5 wikitext text/x-wiki ===Painter Segmentation Steps / Documentation=== Keystrokes: '+,=' Keys - Zoom out '-,_' Keys - Zoom in 'x' Key - Kill active layer 'c' Key - Copy current layer 'v' Key - Create blank layer 'Up' Down' Keys - Change active layer 'Left,Right' Keys - Change stacking position of active layer 'o' Key - Decrease active layer opacity 'p' Key - Increase active layer opacity 'r' Key - resets color lookup table window level and width to default Middle-Mouse-Button- starts Probe tool which sets other views to intersect at cursor Mouse-Scroll-Up, or '>' key - changes current slice to next slice Mouse-Scroll-Down, or '<' key - changes current slice to previous slice Shift-Left-Mouse-Button-Drag - grabs and pans current window Shift-Right-Mouse-Button-Drag - Zooms current window in and out Shift-Middle-Mouse-Button-Click - Autoviews current volume in current window 'f' Key - Starts Flood Fill tool: *Right mouse button sets current value to flood fill with *Left mouse button sets seed point and performs flood fill 'b' Key - Starts Brush tool: *Left-Mouse-Button-Drag - applies paint to current layer *Mouse-Scroll-Wheel-Up/Down - Increases/decreases paint brush size *Right-Mouse-Button-Click - Sets paint value to value of pixel on current layer under mouse cursor *Middle-Mouse-Button-Click - Quits Paint Tool 'u' Key - Performs Undo on last Flood Fill or Paint tool operation CIBC:Project:Triedman 0 1008 1154 2006-02-11T15:12:16Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Segmentation == == Segmentation Optimization for Meshing == == Meshing == == FEM Modeling == 1155 1154 2006-02-11T15:20:02Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Segmentation == == Segmentation Optimization for Meshing == == Meshing == == FEM Modeling == 1156 1155 2006-02-11T15:23:45Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Segmentation == [[2/10/06 Meeting with SPL Segmentation folks]] == Segmentation Optimization for Meshing == == Meshing == == FEM Modeling == 1157 1156 2006-02-11T15:36:07Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Segmentation == [[2/10/06 Meeting with SPL Segmentation folks]] == Meshing == == FEM Modeling == 1162 1157 2006-02-11T15:47:21Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Segmentation == [[2/10/06 Meeting with SPL Segmentation folks]] == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shephard et al. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == 2/10/06 Meeting with SPL Segmentation folks 0 1009 1158 2006-02-11T15:33:36Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Those in Attendence: Dr. Brooks, Dr. Triedman, Dr. Westin, Dr. Pieper, Dr. Kindlmann, Dr. Warfield, Matt Jolley == Overview of Meeting == Dr. Triedman introduced topic to those unfamiliar. Various options for semi-automated segmentation tools were discussed and big picture questions answered. We focused on the big picture and then looked at ways to utilized SPL's expertise in creating torso/heart models. *Dr. Warfield suggested obtained several datasets and creating statistical atlases based utilizing the STAPLE algorithm already in use in his lab for brain and abdominal segmentations. He was optimistic that with several manual segmentations in each class the algorithms would be able to have a basis for segmentation. *Dr. Westin suggested utilizing the segmentation algorithm developed by Kilian Pohl for segmentation. *There was discussion of who should be the "point" man at SPL for developing this project. Several folks were mentioned including Kilian Pohl and Dr. Kindlmann. *Discussion of funding options, CIMIT grant proposal, as well as overview of recent discussions with CIMIT adminstration 1159 1158 2006-02-11T15:48:43Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Those in Attendence: Dr. Brooks, Dr. Triedman, Dr. Westin, Dr. Pieper, Dr. Kindlmann, Dr. Warfield, Matt Jolley == Overview of Meeting == Dr. Triedman introduced topic to those unfamiliar. Various options for semi-automated segmentation tools were discussed and big picture questions answered. We focused on the big picture and then looked at ways to utilize SPL's expertise in creating torso/heart models. *Dr. Warfield suggested obtained several datasets and creating statistical atlases based utilizing the STAPLE algorithm already in use in his lab for brain and abdominal segmentations. He was optimistic that with several manual segmentations in each class the algorithms would be able to have a basis for segmentation. *Dr. Westin suggested utilizing the segmentation algorithm developed by Kilian Pohl for segmentation. *There was discussion of who should be the "point" man at SPL for developing this project. Several folks were mentioned including Kilian Pohl and Dr. Kindlmann. *Discussion of funding options, CIMIT grant proposal, as well as overview of recent discussions with CIMIT adminstration 1160 1159 2006-02-11T15:50:31Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Those in Attendence: Dr. Brooks, Dr. Triedman, Dr. Westin, Dr. Pieper, Dr. Kindlmann, Dr. Warfield, Matt Jolley == Overview of Meeting == Dr. Triedman introduced topic to those unfamiliar. Various options for semi-automated segmentation tools were discussed and big picture questions answered. We focused on the big picture and then looked at ways to utilize SPL's expertise in creating torso/heart models. *Dr. Warfield suggested obtained several datasets and creating statistical atlases based utilizing the STAPLE algorithm already in use in his lab for brain and abdominal segmentations. He was optimistic that with several manual segmentations in each class the algorithms would be able to have a basis for segmentation. *Dr. Westin suggested utilizing the segmentation algorithm developed by Kilian Pohl for segmentation. This is already built into 3D Slicer but the parameters would have to be optimized for torso/heart. *There was discussion of who should be the "point" man at SPL for developing this project. Several folks were mentioned including Kilian Pohl and Dr. Kindlmann. *Discussion of funding options, CIMIT grant proposal, as well as overview of recent discussions with CIMIT adminstration 1161 1160 2006-02-11T15:54:24Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Those in Attendence: Dr. Brooks, Dr. Triedman, Dr. Westin, Dr. Pieper, Dr. Kindlmann, Dr. Warfield, Matt Jolley == Overview of Meeting == Dr. Triedman introduced the project to those unfamiliar. Various options for semi-automated segmentation tools were discussed and big picture questions answered. We then looked at ways to utilize SPL's expertise in creating torso/heart models. *Dr. Warfield suggested obtaining several datasets and creating statistical atlases based utilizing the STAPLE algorithm already in use in his lab for brain and abdominal segmentations. He was optimistic that with several manual segmentations in each class the algorithms would be able to have a basis for segmentation. *Dr. Westin suggested utilizing the segmentation algorithm developed by Kilian Pohl for segmentation. This is already built into 3D Slicer but the parameters would have to be optimized for torso/heart. *There was discussion of who should be the "point" man at SPL for developing this project. *Discussion of funding options, CIMIT grant proposal, as well as overview of recent discussions with CIMIT adminstration *The clinical folks will put representative CT/MRI datasets on the SPL server to facilitate access to data 2/10/06 Meeting with SPL Segmentation folks 0 1009 3128 1161 2006-02-11T15:57:05Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Those in Attendence: Dr. Brooks, Dr. Triedman, Dr. Westin, Dr. Pieper, Dr. Kindlmann, Dr. Warfield, Matt Jolley == Overview of Meeting == Dr. Triedman introduced the project to those unfamiliar. Various options for semi-automated segmentation tools were discussed and big picture questions answered. We then looked at ways to utilize SPL's expertise in creating torso/heart models. *Dr. Warfield suggested obtaining several datasets and creating statistical atlases utilizing the STAPLE algorithm already in use in his lab for brain and abdominal segmentations. He was optimistic that with several manual segmentations in each class the algorithms would have a basis for segmentation. *Dr. Westin suggested utilizing the segmentation algorithm developed by Kilian Pohl for segmentation. This is already built into 3D Slicer but the parameters would have to be optimized for torso/heart. *There was discussion of who should be the "point" man at SPL for developing this project. *Discussion of funding options, CIMIT grant proposal, as well as overview of recent discussions with CIMIT adminstration *The clinical folks will put representative CT/MRI datasets on the SPL server to facilitate access to data CIBC:Project:Triedman 0 1008 1163 1162 2006-02-11T15:58:23Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Segmentation == [[2/10/06 Meeting with SPL Segmentation folks]] == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shephard as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == 1173 1163 2006-02-11T15:59:24Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Segmentation == [[2/10/06 Meeting with SPL Segmentation folks]] == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shephard as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == Functional nets and datasets available on the xythos site. 1174 1173 2006-03-02T03:58:57Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] == Segmentation == Welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts underway to utilize esisting level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shephard as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == Functional nets and datasets available on the xythos site. 1175 1174 2006-03-02T04:06:46Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] == Segmentation == Welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shephard as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == Functional nets and datasets available on the xythos site. 1176 1175 2006-03-02T04:15:43Z Matthew.jolley@tch.harvard.edu 23 /* FEM Modeling */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] == Segmentation == Welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shephard as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Electrodes Within Torso]] [[Visualization and Interactive Investigation of Myocardial Voltage Gradients]] [[Numerical Data Interrogation and Display]] 1177 1176 2006-03-02T04:17:01Z Matthew.jolley@tch.harvard.edu 23 /* FEM Modeling */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] == Segmentation == Welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shephard as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Electrodes Within Torso]] [[Visualization and Visual Investigation of Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1178 1177 2006-03-02T05:00:14Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Electrodes Within Torso]] [[Visualization and Visual Investigation of Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1180 1178 2006-03-02T05:05:24Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1181 1180 2006-03-02T05:08:12Z Matthew.jolley@tch.harvard.edu 23 /* Introduction */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1259 1181 2006-03-02T05:08:30Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] User:Rayasch 2 1010 3144 2006-02-16T17:47:46Z Erikj 2 wikitext text/x-wiki I am a researcher in neurophysiology group of University College London (UK) medical physics department. FAQ 0 1011 1164 2006-02-16T20:33:27Z Dav 18 Added some info about the utah torso wikitext text/x-wiki = SCIRun/BioPSE FAQ = == Categories == === Datasets === * Q) Tell me about the Utah Torso Dataset. == Datasets == Q) Tell me about the Utah Torso Dataset. <br> A) Author: Rob MacLeod, Date: Feb 2006 <br> First, the original source of the geometry was MRI, as you have read. However, our interest in the bone data came later and they were not visible enough in the MRI to extract from there. Instead, we acquired standardized rib and spine geometry and fit them to the torso model. With that said, there is considerable variation among patients with regard to heart shape and even location. Some hearts are long and relatively narrow while others sit higher and are larger in a transverse slice. The variation you have spotted between the textbook and the Utah torso is, I believe, well within that normal range of variation. Finally, gating to the R wave does not ensure systole in the images of the heart for a couple reasons. The first reason is that electrical and mechanical systole are not aligned in time. Each cell of the heart experiences a delay between electrical and mechanical excitation, up to 200 ms in fact.. The result is that the R wave occurs during end diastole of the mechanical cycle, i.e., well before mechanical systole. Even more important, using the R wave to gate the image acquisition does not mean that all images have to be captured at the time of the peak of the R wave; rather the peak of the R wave provides a common reference so that acquisitions from different beats can capture the same phase of the heart cycle. The actual acquisition moment can be offset from the time of the R wave using a simple delay, i.e., each acquisition can occur with the same delay from that peak of the R wave. I hope that with this information you can see that the Utah torso geometry can, indeed, be trusted to represent reasonably the geometry of an adult human torso. Just as with the visible human data, this is only one specific case and there are simply not enough data available to begin to create a true atlas that specifies the ranges of normal anatomy of the entire torso. There are atlases like this of the brain but I don't know of any other organ system that has received enough attention to begin to quantify anatomical variation. <hr> 1165 1164 2006-02-16T20:41:44Z Dav 18 Added link to CIBC main page. wikitext text/x-wiki = SCIRun/BioPSE FAQ = == Questions (By Category) == === Datasets === * Q) Tell me about the Utah Torso Dataset. == Answers (By Category) == === Datasets === Q) Tell me about the Utah Torso Dataset. <br> A) Author: Rob MacLeod, Date: Feb 2006 <br> First, the original source of the geometry was MRI, as you have read. However, our interest in the bone data came later and they were not visible enough in the MRI to extract from there. Instead, we acquired standardized rib and spine geometry and fit them to the torso model. With that said, there is considerable variation among patients with regard to heart shape and even location. Some hearts are long and relatively narrow while others sit higher and are larger in a transverse slice. The variation you have spotted between the textbook and the Utah torso is, I believe, well within that normal range of variation. Finally, gating to the R wave does not ensure systole in the images of the heart for a couple reasons. The first reason is that electrical and mechanical systole are not aligned in time. Each cell of the heart experiences a delay between electrical and mechanical excitation, up to 200 ms in fact.. The result is that the R wave occurs during end diastole of the mechanical cycle, i.e., well before mechanical systole. Even more important, using the R wave to gate the image acquisition does not mean that all images have to be captured at the time of the peak of the R wave; rather the peak of the R wave provides a common reference so that acquisitions from different beats can capture the same phase of the heart cycle. The actual acquisition moment can be offset from the time of the R wave using a simple delay, i.e., each acquisition can occur with the same delay from that peak of the R wave. I hope that with this information you can see that the Utah torso geometry can, indeed, be trusted to represent reasonably the geometry of an adult human torso. Just as with the visible human data, this is only one specific case and there are simply not enough data available to begin to create a true atlas that specifies the ranges of normal anatomy of the entire torso. There are atlases like this of the brain but I don't know of any other organ system that has received enough attention to begin to quantify anatomical variation. <hr> <br> [[ CIBC | Back to CIBC Main Page ]] 3145 1165 2006-02-16T20:48:00Z Erikj 2 /* Datasets */ wikitext text/x-wiki = SCIRun/BioPSE FAQ = == Questions (By Category) == === Datasets === * Q) Tell me about the Utah Torso Dataset. == Answers (By Category) == === Datasets === Q) Tell me about the Utah Torso Dataset. <br> A) Author: Rob MacLeod, Date: Feb 2006 <br> First, the original source of the geometry was MRI, as you have read. However, our interest in the bone data came later and they were not visible enough in the MRI to extract from there. Instead, we acquired standardized rib and spine geometry and fit them to the torso model. With that said, there is considerable variation among patients with regard to heart shape and even location. Some hearts are long and relatively narrow while others sit higher and are larger in a transverse slice. The variation you have spotted between the textbook and the Utah torso is, I believe, well within that normal range of variation. Finally, gating to the R wave does not ensure systole in the images of the heart for a couple reasons. The first reason is that electrical and mechanical systole are not aligned in time. Each cell of the heart experiences a delay between electrical and mechanical excitation, up to 200 ms in fact.. The result is that the R wave occurs during end diastole of the mechanical cycle, i.e., well before mechanical systole. Even more important, using the R wave to gate the image acquisition does not mean that all images have to be captured at the time of the peak of the R wave; rather the peak of the R wave provides a common reference so that acquisitions from different beats can capture the same phase of the heart cycle. The actual acquisition moment can be offset from the time of the R wave using a simple delay, i.e., each acquisition can occur with the same delay from that peak of the R wave. I hope that with this information you can see that the Utah torso geometry can, indeed, be trusted to represent reasonably the geometry of an adult human torso. Just as with the visible human data, this is only one specific case and there are simply not enough data available to begin to create a true atlas that specifies the ranges of normal anatomy of the entire torso. There are atlases like this of the brain but I don't know of any other organ system that has received enough attention to begin to quantify anatomical variation. <hr> <br> [[ Main_Page | Back to CIBC Main Page ]] File:Stripped-model.gif 6 1012 3146 2006-02-19T17:55:04Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki CIBC:Project:ImageViewer:Documentation 0 1007 3130 1166 2006-02-21T23:01:59Z McKay Davis 5 /* Painter Segmentation Steps / Documentation */ wikitext text/x-wiki ===Painter Segmentation Steps / Documentation=== Keystrokes: '+,=' Keys - Zoom out '-,_' Keys - Zoom in 'x' Key - Kill active layer 'c' Key - Copy current layer 'v' Key - Create blank layer 'Up' Down' Keys - Change active layer 'Left,Right' Keys - Change stacking position of active layer 'o' Key - Decrease active layer opacity 'p' Key - Increase active layer opacity 'r' Key - Resets color lookup table window level and width to default 'q' Key - Quits current tool SpaceBar Key - Completes current tool Middle-Mouse-Button- starts Probe tool which sets other views to intersect at cursor Mouse-Scroll-Up, or '>' key - changes current slice to next slice Mouse-Scroll-Down, or '<' key - changes current slice to previous slice Shift-Left-Mouse-Button-Drag - grabs and pans current window Shift-Right-Mouse-Button-Drag - Zooms current window in and out Shift-Middle-Mouse-Button-Click - Autoviews current volume in current window 'f' Key - Starts Flood Fill tool: *Right mouse button sets current value to flood fill with *Left mouse button sets seed point and performs flood fill 'b' Key - Starts Brush tool: *Left-Mouse-Button-Drag - applies paint to current layer *Mouse-Scroll-Wheel-Up/Down - Increases/decreases paint brush size *Right-Mouse-Button-Click - Sets paint value to value of pixel on current layer under mouse cursor *SpaceBar - Completes brush tool 'a' Key - Starts Crop tool: *Left-Mouse-Button-Drag - Move/Resize crop box *SpaceBar - Crops current layer 'u' Key - Performs Undo on last Flood Fill or Paint tool operation CIBC:Collab:Triedman 0 961 1168 1167 2006-03-01T08:24:37Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Department of Cardiology, Children's Hospital Boston''' Matthew Jolley, MD John Triedman, MD '''Scientific Computing and Imaging Institute''' Dana Brooks, PhD, NorthEastern University Robert Macleod, PhD, Utah David Weinstein, PhD, Utah '''Surgical Planning Laboratory''' Carl-Fredrik Westin, PhD Raul San-Hose Estepar, PhD Steve Pieper, PhD Gordon Kindlmann, PhD == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) 1170 1168 2006-03-01T08:26:24Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Department of Cardiology, Children's Hospital Boston''' Matthew Jolley, MD John Triedman, MD '''Scientific Computing and Imaging Institute''' Dana Brooks, PhD, NorthEastern University Robert Macleod, PhD, Utah David Weinstein, PhD, Utah '''Surgical Planning Laboratory''' Carl-Fredrik Westin, PhD Raul San-Jose Estepar, PhD Steve Pieper, PhD Gordon Kindlmann, PhD == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) 1312 1170 2006-03-01T13:31:42Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Department of Cardiology, Children's Hospital Boston''' Matthew Jolley, MD John Triedman, MD '''Scientific Computing and Imaging Institute''' Dana Brooks, PhD, NorthEastern University Robert MacLeod, PhD, Utah David Weinstein, PhD, Utah '''Surgical Planning Laboratory''' Carl-Fredrik Westin, PhD Raul San-Jose Estepar, PhD Steve Pieper, PhD Gordon Kindlmann, PhD == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) Modeling and Visualization of Models in SCIRun/BioPSE 0 984 3119 1169 2006-03-01T08:28:00Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Status of Subproject == In Process == FEM Modeling of Electric Fields in Models== [http://software.sci.utah.edu/scirun.html SCIRun] and [http://www.sci.utah.edu/cibc/software/index.html BioPSE] are powerful tools for finite element modeling of electric fields in image based models. An introduction and tutorial for these programs and the concepts behind them are available [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/index.html here]. The [http://software.sci.utah.edu/doc/Developer/Modules/index.html module reference]is also very helpful in understanding the functionality of networks which were created by other people as well as developing your own. The following information is meant as an introduction to the steps needed to model and visualize electric fields in the models created in 3D Slicer. The specifics of functional nets will eventually be described in example based tutorials. '''Meshing''' SCIRun can take the voxels represented in the NRRD file and convert them into a tetrahedral mesh optimal for iterative computation and visualization in the SCIRun environment. The specifics of this vary depending on the application. The meshing capabilities within both SCIRun and 3D Slicer are an active area of research. '''Assigning Conductivities''' The values for conductivities and related quantities for various biological tissues are available in the literature. Appropriate values should be assigned to each tissue type. There is wide variation and care should be taken in choosing them. These can then be entered within an appropriate net using the [http://software.sci.utah.edu/src/Packages/BioPSE/Dataflow/XML/ModifyConductivities.html Modify Conductivity Module]. Values can either be entered into the GUI or defined by an Nx9 matrix. '''Solving the Volume Conductor Problem''' Once a model has been created and apporopriate conductivities have been assigned to the tissues a net must be created to solve the volume conductor problem and visualize the result. The basic theory and steps to solve the problem for the case of a simple dipole are summarized Chapters 5-7 of the [http://software.sci.utah.edu/doc/User/Tutorials/SCIRun_Intro/chapter_5.html SCIRun Tutorial]. '''Inserting Arbitrarily Shaped Electrodes into the Model''' We are interested in solving the forward problem not for a simple dipole but for an electric field created by internal inplantable defibrillator electrodes inserted in different positions in image based models of children. It involves taking the models created in the previous steps in the pipeline and inserting appropriately shaped electrodes into anatomically realistic positions. In order to do this the previously created mesh must be "remeshed" to remove the original "tissue" elements and replace them with "electrode" elements in which the voltage can be set. The technology to do this is currently being developed as explained [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement here]. '''Functional Example Net as a Tutorial''' Scalable nets for modeling the volume conductor problem and visualization of models created in 3D Slicer are being developed. == Subproject Requirements == '''Control Structure''' *Being defined and built from within SCI '''Algorithms''' *Smoothing/Premeshing optimization *Meshing- Explore optimal meshing strategy/algorithms for process. Utilize existing SCIRun meshing or outside product. *FE stiffness matrix- Utilize existing modules in BioPSE *Insert electrodes module- This will require local remeshing and rebuilding of components of SCIRun. '''Data Representation/User Interface''' *Visualization of torso **Allow ability to move electrodes in torso with precision within torso *Visualization of torso surface field **Show surface potentials on the chest in separate window *Visualization of Heart **Visualization of voltage gradients in heart **Visualization of electrodes relative to heart *Measurement of voltage field within heart **Histogram **Widget with ability to sample within visualization --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:57, 25 Jan 2006 (MST) Segmentation of CT and MRI datasets using 3D Slicer 0 976 1172 1171 2006-03-02T03:52:34Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the [http://www.na-mic.org NAMIC toolkit], and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details the tools and steps used to segment a DICOM dataset. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Automated Segmentation == We are in the process of working to utilize segmentation algorithms developed for the brain at SPL for the chest, heart, and vasculature. Dr. Westin's group at SPL has substantial experience in segmentation of images and we are beginning to explore various techniques for automated segmentation. == Subproject Improvements/Requirements == * Automated segmentation techniques/algorithms --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 3096 1172 2006-03-02T03:53:52Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Subproject Status == 3D Slicer is an excellent tool for segmentation of medical imaging datasets. == Segmentation == Segmentation of images is the process of identifying and labeling regions of interest within an image. 3D Slicer is a powerful and robust tool for semi-automated and manual segmentation of images. It is built on the [http://www.na-mic.org NAMIC toolkit], and arguably the open source standard for GUI based 3D image segmentation. It is currently optimized for segmentation of the MRI images of the brain, but can be used to segment any DICOM dataset. '''Getting Started''' The first step is to obtain the 3D Slicer program as detailed on the [http://www.slicer.org/ 3D Slicer site]. 3D Slicer is available precompiled for many platforms or may built from source. You should familiarize yourself with the program by going through the excellent ''Tutorial'' link on the home page. There is also a wiki site with an example based tutorial [http://wiki.na-mic.org/Wiki/index.php/Slicer:Workshops:User_Training_101 here]. The users email list is also worth subscribing to. Because 3D Slicer is an evolving tool somebody might have built or be building a tool you want. '''Modifying Data''' Once you are comfortable importing DICOM datasets as outlined in ''Tutorial'' turn your attention to the ''User's Guide'' linked on the same page. Within the ''User's Guide'' familiarize yourself with the ''Modifying Data'' section. The details, the tools, and the steps used to segment a DICOM dataset are described. Pay particular attention to the thresholding, save island, remove island, change island, and most importantly the all important '''UNDO''' button. The draw function will also be useful. Play with these until you are familiar with how they work. '''Saving Data''' At the end of the ''Modifying Data'' section it details the numerous ways to save data within 3D Slicer. Within this page and within 3D slicer a label map is defined as a voxelized volume. This can be saved in several formats but the most useful for our purposes is the [http://teem.sourceforge.net/nrrd/title NRRD format]created by Dr. Kindlmann. The NRRD format has an associated set of tools called [http://teem.sourceforge.net/unrrdu/index.html unu]which allow the manipulation and combination of individual NRRDs. The option to save as a NRRD file is a little hard to find. Within the Slicer window go to ''Volumes''-->''More'' and look down to the bottom where it sayes NRRD. Be sure to specify the appropriate label map for the 3D Slicer to save as a NRRD in the top ''Active Volume'' selector. Another useful tool is to utilize the Modelmaker module to take your label map and convert it into a model which shows the surface of the label map in 3D and can be saved as a .vtk file. This is useful for examining your label maps as a surface within the 3D Slicer program. These two formats should be understood as separate and useful for different purposes. The label maps saved in the NRRD format will be the building blocks which are combined and hierarchically "stacked" on one another to form the final model for import into SCIRun. The models saved as .vtk files are useful for visualization of the shell of the label map within the Slicer program. == Automated Segmentation == We are in the process of working to utilize segmentation algorithms developed for the brain at SPL for the chest, heart, and vasculature. Dr. Westin's group at SPL has substantial experience in segmentation of images and we are beginning to explore various techniques for automated segmentation. == Subproject Improvements/Requirements == * Automated segmentation techniques/algorithms --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 09:42, 25 Jan 2006 (MST) 3/1/06 Collaboration formalized and grant submitted to CIMIT for further work 0 1013 1179 2006-03-02T04:01:32Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Grant submitted to CIMIT with the following individuals listed as collaborators: Principal Investigator: Matthew Jolley, MD, Children’s Hospital Boston Mentors: John Triedman MD, Children’s Hospital Boston (Sponsor) Dana Brooks PhD, Northeastern University Collaborators: Robert MacLeod PhD, Scientific Computing and Imaging Institute Carl-Fredrik Westin PhD, Surgical Planning Laboratory 3147 1179 2006-03-02T05:07:47Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Grant submitted to CIMIT with the following individuals listed as collaborators: '''Principal Investigator:''' Matthew Jolley, MD, Children’s Hospital Boston '''Mentors:''' John Triedman MD, Children’s Hospital Boston (Sponsor) Dana Brooks PhD, Northeastern University '''Collaborators: ''' Robert MacLeod PhD, Scientific Computing and Imaging Institute Carl-Fredrik Westin PhD, Surgical Planning Laboratory Main Page 0 1 1183 1182 2006-03-27T15:13:54Z Mjc 35 /* Technical Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== * [[CIBC:Project:MeshRefinement | Mesh refinement]] * [[CIBC:Project:TetGen | TetGen Bridge]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1219 1183 2006-03-27T15:15:19Z Mjc 35 /* Technical Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] CIBC:Project:TetGen 0 1014 1184 2006-03-27T15:25:08Z Mjc 35 wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation: [http://tetgen.berlios.de/ TetGen] # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' 1185 1184 2006-03-27T15:28:48Z Mjc 35 /* Documenting the TetGen bridge */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation: [http://tetgen.berlios.de/ TetGen] # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module will attempt to compile. 1186 1185 2006-03-27T15:29:23Z Mjc 35 /* Documenting the TetGen bridge */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation: [http://tetgen.berlios.de/ TetGen] # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. 1187 1186 2006-03-27T15:29:51Z Mjc 35 /* Documenting the TetGen bridge */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. 1188 1187 2006-03-27T15:31:57Z Mjc 35 /* Documenting the TetGen bridge */ wikitext text/x-wiki === Documenting the TetGen bridge === Download and documentation site: [http://tetgen.berlios.de/ TetGen] # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. 1189 1188 2006-03-27T17:41:22Z Mjc 35 /* Documenting the TetGen bridge */ wikitext text/x-wiki === Documenting the TetGen bridge === Download and documentation site: [http://tetgen.berlios.de/ TetGen] # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. Note: The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. 1190 1189 2006-03-29T17:12:23Z Mjc 35 /* Documenting the TetGen bridge */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list 1191 1190 2006-03-29T17:14:40Z Mjc 35 /* Compiling and Configuring */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list 1192 1191 2006-03-29T17:14:57Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? === TetGen === '''module spec''' === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list 1193 1192 2006-03-29T17:21:18Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list 1194 1193 2006-03-29T17:23:23Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list 1195 1194 2006-03-29T17:23:38Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list 1196 1195 2006-03-29T17:23:50Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list 1197 1196 2006-03-29T17:28:31Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list This module is for building a FE TetVol that specifies a material id per element. GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> > one double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1198 1197 2006-03-29T17:28:55Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1199 1198 2006-03-29T17:29:23Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1200 1199 2006-03-29T17:30:44Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1201 1200 2006-03-29T17:30:56Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals) * point cloud input field (optional) ** force the output volume to include these nodes * UI which allows you to specify an offset distance. ** this distance will be used to choose a points just inside each containted surface ** one point will be chosen per different region id in the property list * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1202 1201 2006-03-29T19:37:05Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1203 1202 2006-03-29T19:37:57Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. ---- Perhaps we need two modules, one which just lets the user choose command line switches and takes dynamic input. Another which is specifically for building a finite element volume from surfaces. This first module can just be '''TetGen'''. the second module name - '''BuildFEVol''' ?? == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1204 1203 2006-03-29T19:44:39Z Mjc 35 /* Compiling and Configuring */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1205 1204 2006-03-29T19:45:27Z Mjc 35 /* Compiling and Configuring */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Modules == == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1206 1205 2006-03-29T19:45:53Z Mjc 35 /* Modules */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == == TetGen == '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' CIBC:Project:TetGen 0 1014 1207 1206 2006-03-29T19:46:10Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. == BuildFEVol == '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1208 1207 2006-03-29T19:46:19Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1209 1208 2006-03-29T19:48:03Z Mjc 35 /* Proposed Modules */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == The following modules depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1210 1209 2006-03-29T19:48:25Z Mjc 35 /* Proposed Modules */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input ** for ensuring points exist in output (optional input) * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1211 1210 2006-03-29T19:51:11Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input (optional) ** Ensure that each point exist in output volume nodes. * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** force the output volume to include these nodes * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1212 1211 2006-03-29T19:52:00Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input (optional) ** Ensure that each point exist in output volume nodes. * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1213 1212 2006-03-29T19:52:23Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1214 1213 2006-04-04T14:08:47Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input (optional) ** only needed if you need to control the region attributes. *** like the region id (material value) *** or if you want to have regional control over the volume constraint ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1215 1214 2006-04-04T14:20:55Z Mjc 35 /* Compiling and Configuring */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. '''Crash Bug''' Currently tetgen can crash given a sperical input mesh. I am talking with Hang Si about it. You can work around this by jittering the nodes in the mesh somewhat. This happens at least on 64bit machines. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input (optional) ** only needed if you need to control the region attributes. *** like the region id (material value) *** or if you want to have regional control over the volume constraint ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1216 1215 2006-04-04T14:25:33Z Mjc 35 /* BuildFEVol */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. '''Crash Bug''' Currently tetgen can crash given a sperical input mesh. I am talking with Hang Si about it. You can work around this by jittering the nodes in the mesh somewhat. This happens at least on 64bit machines. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input (optional) ** only needed if you need to control the region attributes. *** like the region id (material value) *** or if you want to have regional control over the volume constraint ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) * We will need a UI to allow the user to input values for q or a switches (quality, area) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1217 1216 2006-04-04T14:29:39Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. '''Crash Bug''' Currently tetgen can crash given a sperical input mesh. I am talking with Hang Si about it. You can work around this by jittering the nodes in the mesh somewhat. This happens at least on 64bit machines. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input (optional) ** only needed if you need to control the region attributes. *** like the region id (material value) *** or if you want to have regional control over the volume constraint ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. [[Image:tetgen3surf.png]] === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) * We will need a UI to allow the user to input values for q or a switches (quality, area) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1218 1217 2006-04-04T14:30:23Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. '''Crash Bug''' Currently tetgen can crash given a sperical input mesh. I am talking with Hang Si about it. You can work around this by jittering the nodes in the mesh somewhat. This happens at least on 64bit machines. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input (optional) ** only needed if you need to control the region attributes. *** like the region id (material value) *** or if you want to have regional control over the volume constraint ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. The test netowork is: SCIRun/src/nets/Modules/FieldsCreate/TetGen-3regions.srn [[Image:tetgen3surf.png]] === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) * We will need a UI to allow the user to input values for q or a switches (quality, area) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1232 1218 2006-04-04T14:31:47Z Mjc 35 /* TetGen */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. '''Crash Bug''' Currently tetgen can crash given a sperical input mesh. I am talking with Hang Si about it. You can work around this by jittering the nodes in the mesh somewhat. This happens at least on 64bit machines. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input (optional) ** only needed if you need to control the region attributes. *** like the region id (material value) *** or if you want to have regional control over the volume constraint ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. The test netowork is: SCIRun/src/nets/Modules/FieldsCreate/TetGen-3regions.srn Use the ClipField UI in this net to show you the different tetvol regions, valid values are 1,2,and 3. [[Image:tetgen3surf.png]] === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) * We will need a UI to allow the user to input values for q or a switches (quality, area) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 1233 1232 2006-04-13T20:35:43Z Mjc 35 /* Documenting the TetGen bridge */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] The dev version: [http://www.wias-berlin.de/people/si/tetgen-dev.tgz TetGen Developement Version] I recommend using the dev version, as it has some fixes and better debugging info and a new -q refinement algorithm. (See this [http://www.wias-berlin.de/people/si/refine.pdf paper]) === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. '''Crash Bug''' Currently tetgen can crash given a sperical input mesh. I am talking with Hang Si about it. You can work around this by jittering the nodes in the mesh somewhat. This happens at least on 64bit machines. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input (optional) ** only needed if you need to control the region attributes. *** like the region id (material value) *** or if you want to have regional control over the volume constraint ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. The test netowork is: SCIRun/src/nets/Modules/FieldsCreate/TetGen-3regions.srn Use the ClipField UI in this net to show you the different tetvol regions, valid values are 1,2,and 3. [[Image:tetgen3surf.png]] === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) * We will need a UI to allow the user to input values for q or a switches (quality, area) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' 3148 1233 2006-04-13T20:36:13Z Mjc 35 /* Documenting the TetGen bridge */ wikitext text/x-wiki == Documenting the TetGen bridge == Download and documentation site: [http://tetgen.berlios.de/ TetGen] The dev version: [http://www.wias-berlin.de/people/si/tetgen-dev.tgz TetGen Developement Version] I recommend using the dev version, as it has some fixes and better debugging info and a new -q refinement algorithm. (See this [http://www.wias-berlin.de/people/si/refine.pdf paper]) === Compiling and Configuring === # download the tarball # untar it. # cd into tetgen1.4.0 # If you have a '''64 bit machine''', you have to add -fPIC to CFLAGS in makefile. # type: ''make tetlib'' # on your scirun configure line add ''--with-tetgen=/full/path/to/your/tetgen1.4.0'' Once you successfully configure the module '''SCIRun/FieldsCreate/TetGen''' will attempt to compile. ---- '''Note:''' The command line switches that are passed to tetrahedralize are very sensitive to the input data. It is easy to make it do anything from crashing to infinite loop to work correctly. So I'm not sure how much control we should allow the user from a gui. '''Crash Bug''' Currently tetgen can crash given a sperical input mesh. I am talking with Hang Si about it. You can work around this by jittering the nodes in the mesh somewhat. This happens at least on 64bit machines. == Proposed Modules == The following modules would depend upon tetgen, and conditionally compile when successfully configured --with-tetgen. === TetGen === '''module spec''' * More generic use of tetgen * Allow the user to specify the command line switch string ** which can allow them to crash tetgen or infinite loop * point cloud input field (optional) ** Force the output volume to include each point as nodes. * second point cloud field input (optional) ** only needed if you need to control the region attributes. *** like the region id (material value) *** or if you want to have regional control over the volume constraint ** these points indicate regions (in the same order as input fields) ** the double value stored at the points are the [http://tetgen.berlios.de/switches.a.html volume constraint] * dynamic field input port ** each input is added with a unique region number This module is for using the capabilities of tetgen on SCIRun fields. The test netowork is: SCIRun/src/nets/Modules/FieldsCreate/TetGen-3regions.srn Use the ClipField UI in this net to show you the different tetvol regions, valid values are 1,2,and 3. [[Image:tetgen3surf.png]] === BuildFEVol === '''module spec''' * each geometrically distinct surface has a unique region number stored at each face (constant data) * One input field for the surface data ** constant basis surface field ** region id at each face indicating which spatially different surface the face belongs to. ** a property which maps region id to material id, [http://tetgen.berlios.de/switches.a.html volume constraint] ** correct surfaces (consistent ordering with outward facing normals), and a Point in the region ** the property would be generated upstream ** likely the result of another module that does ray casting with user input for specifying the volume constraint in a region think gather fields ++ * point cloud input field (optional) ** Force the output volume to include each point as nodes. * this module uses tetgen in a very specific way (the most stable way we can determine) * We will need a UI to allow the user to input values for q or a switches (quality, area) This module is for building a FE TetVol that specifies a material id per element. '''GenericField<TetVolMesh<TetLinearLgn<Point> >, ConstantBasis<double>, vector<double> >''' One double per element should be flexible enough to represent any material representation, although char is likely sufficient but limiting. ''Perhaps this should be specified in the UI?'' Help:Editing 12 1015 3149 2006-03-29T21:22:15Z Dav 18 Added pointer Marty provided. wikitext text/x-wiki = Helpful Links = [http://meta.wikimedia.org/wiki/Help:Contents#For_editors Media Wiki Editing Help] File:Tetgen3surf.png 6 1016 3150 2006-04-04T14:28:19Z Mjc 35 image result of the test network for TetGen wikitext text/x-wiki image result of the test network for TetGen Main Page 0 1 1225 1219 2006-04-05T20:34:36Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Development=== [[CIBC:Dev:Main | Current development priorities]] ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1234 1225 2006-04-05T20:46:59Z Dmw 6 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] 1242 1234 2006-04-16T15:54:17Z Macleod 3 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1284 1242 2006-04-16T17:17:56Z Macleod 3 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshop === [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Dev:Main 0 1017 1220 2006-04-05T20:39:15Z Dmw 6 wikitext text/x-wiki == Developers == McKay Davis #Painter module Michael Callahan #InsertField module #Mesh smoother (MESQUITE) Darby Van Uitert #Fix PowerApps Marty Cole #TetGen mesh generator #NeuroFEM interface Dav de St. Germain #ThirdParty == High Priority Bugs == #Slow first rendering (just Mac?) #Saving and reloading nets 1221 1220 2006-04-05T20:40:31Z Dmw 6 wikitext text/x-wiki == Developers == McKay Davis #[[Painter module]] Michael Callahan #InsertField module #Mesh smoother (MESQUITE) Darby Van Uitert #Fix PowerApps Marty Cole #TetGen mesh generator #NeuroFEM interface Dav de St. Germain #ThirdParty == High Priority Bugs == #Slow first rendering (just Mac?) #Saving and reloading nets 1222 1221 2006-04-05T20:41:00Z Dmw 6 wikitext text/x-wiki == Developers == McKay Davis #[Painter module | CIBC:Dev:Painter] Michael Callahan #InsertField module #Mesh smoother (MESQUITE) Darby Van Uitert #Fix PowerApps Marty Cole #TetGen mesh generator #NeuroFEM interface Dav de St. Germain #ThirdParty == High Priority Bugs == #Slow first rendering (just Mac?) #Saving and reloading nets 1223 1222 2006-04-05T20:41:10Z Dmw 6 wikitext text/x-wiki == Developers == McKay Davis #[[Painter module | CIBC:Dev:Painter]] Michael Callahan #InsertField module #Mesh smoother (MESQUITE) Darby Van Uitert #Fix PowerApps Marty Cole #TetGen mesh generator #NeuroFEM interface Dav de St. Germain #ThirdParty == High Priority Bugs == #Slow first rendering (just Mac?) #Saving and reloading nets 1224 1223 2006-04-05T20:41:25Z Dmw 6 wikitext text/x-wiki == Developers == McKay Davis #[[CIBC:Dev:Painter | Painter module]] Michael Callahan #InsertField module #Mesh smoother (MESQUITE) Darby Van Uitert #Fix PowerApps Marty Cole #TetGen mesh generator #NeuroFEM interface Dav de St. Germain #ThirdParty == High Priority Bugs == #Slow first rendering (just Mac?) #Saving and reloading nets 1226 1224 2006-04-05T20:45:54Z Dmw 6 wikitext text/x-wiki == Developers == McKay Davis #[[CIBC:Dev:Painter | Painter module]] Michael Callahan #[[CIBC:Dev:InsertField | InsertField module]] #[[CIBC:Dev:MeshSmoother| Mesh smoother (MESQUITE)]] Darby Van Uitert #[[CIBC:Dev:PowerAppUpdates | Fix PowerApps]] Marty Cole #[[CIBC:Dev:TetGen | TetGen mesh generator]] #[[CIBC:Dev:NeuroFEMInterface | NeuroFEM interface]] Dav de St. Germain #[[CIBC:Dev:ThirdParty1.25.3 | ThirdParty 1.25.3]] == High Priority Bugs == #[[CIBC:Dev:SlowFieldRender | Slow first rendering (just Mac?)]] #[[CIBC:Dev:SavingAndReloadingNets | Saving and reloading nets]] #[[CIBC:Dev:SlowSetupFEMatrix | SetupFEMatrix is 4x slower than it used to be]] 1227 1226 2006-04-05T20:50:05Z Dmw 6 wikitext text/x-wiki == Developers == McKay Davis #[[CIBC:Dev:Painter | Painter module]] Michael Callahan #[[CIBC:Dev:InsertField | InsertField module]] #[[CIBC:Dev:MeshSmoother| Mesh smoother (MESQUITE)]] Darby Van Uitert #[[CIBC:Dev:PowerAppUpdates | Fix PowerApps]] Marty Cole #[[CIBC:Dev:TetGen | TetGen mesh generator]] #[[CIBC:Dev:NeuroFEMInterface | NeuroFEM interface]] Dav de St. Germain #[[CIBC:Dev:ThirdParty1.25.3 | ThirdParty 1.25.3]] == High Priority Bugs / Projects == #[[CIBC:Dev:SlowFieldRender | Slow first rendering (just Mac?)]] #[[CIBC:Dev:SavingAndReloadingNets | Saving and reloading nets]] #[[CIBC:Dev:SlowSetupFEMatrix | SetupFEMatrix is 4x slower than it used to be]] == Recently Completed Bugs / Projects == #[[CIBC:Dev:Teem1.9 | Update SCIRun to work with Teem 1.9 -- Darby -- completed 4/4/06]] 1257 1227 2006-04-06T20:22:05Z Jeroen 19 /* High Priority Bugs / Projects */ wikitext text/x-wiki == Developers == McKay Davis #[[CIBC:Dev:Painter | Painter module]] Michael Callahan #[[CIBC:Dev:InsertField | InsertField module]] #[[CIBC:Dev:MeshSmoother| Mesh smoother (MESQUITE)]] Darby Van Uitert #[[CIBC:Dev:PowerAppUpdates | Fix PowerApps]] Marty Cole #[[CIBC:Dev:TetGen | TetGen mesh generator]] #[[CIBC:Dev:NeuroFEMInterface | NeuroFEM interface]] Dav de St. Germain #[[CIBC:Dev:ThirdParty1.25.3 | ThirdParty 1.25.3]] == High Priority Bugs / Projects == #[[CIBC:Dev:SlowFieldRender | Slow first rendering (just Mac?)]] #[[CIBC:Dev:SavingAndReloadingNets | Saving and reloading nets]] #[[CIBC:Dev:AutomaticResizingGUI| Guis do not resize automatically and a too large GUI window causes problems]] #[[CIBC:Dev:SlowSetupFEMatrix | SetupFEMatrix is 4x slower than it used to be]] == Recently Completed Bugs / Projects == #[[CIBC:Dev:Teem1.9 | Update SCIRun to work with Teem 1.9 -- Darby -- completed 4/4/06]] CIBC:Dev:Painter 0 1018 1229 2006-04-05T20:41:51Z Dmw 6 wikitext text/x-wiki McKay and Josh, please write and link stuff here about the Painter module project. 1230 1229 2006-04-12T21:35:37Z Cates 4 wikitext text/x-wiki McKay and Josh, please write and link stuff here about the Painter module project. ===Projects for Segmentaion Application=== <pre>The following is a brief list of projects and estimated times to completion for the set of functionality that we would like to get done before the UCSD visit. </pre> * Load Sub-Volumes (1.5 Weeks)<br>Some sort of interface to load from a higher resolution ROI of the current volume<br> ** Design, Spec Interface (2 days) ** Coding of Interface (3 days) ** Coding of Sub-Volume Nrrd Loader (2 days) * Linked Volumes (1.5 Weeks)<br>This is to allow operations (such as the above Load Sub-Volume) to affect multiple layers (volumes) concurrently. Another example would be cropping a volume, and all susequent derived segmentations are also cropped. ** Design, Spec Interface (2-3 days)<br>What tools/filter are affected? Are all operations valid for multiple layers or should we just support a very small subset? ** Coding (4 Days)<br>For demo purposes, only a few operations (Load sub-volume, resample, crop) need to be supported. This should be enough time... *Save / Load Dialogs (3 days)<br>Save, load dialogs need to be available without the use of the network editor.<br>This may take code to internally change the state of the network to add connections to BundeSetNrrd and BundleGetNrrd *Workflow / XML spec / Default Parameters Specification and Design (1 Week)<br>This is almost more of a general GUI layout discussion. How are we going to create customized GUI workflows for specific segmetation datasets? This week of time is just to discuss exactly what framework we will provide for that -- not actually generating and coding these workflows/GUIs. **Create mockup images to show for demo (2 days) *More ITK Filters (1-? Weeks) **Each filter takes about 1 day to incorporate into the workflow. **Any automatically derived parameters from the volume or user generated will take extra coding. * Volume Rednering Improvements (1-? Weeks)<br>We need to evaluate exactly where volume rendering fits into the workflow and what steps to show via volume rendering. **Pixel mask volume (4 days)<br>We need the ability to only render segmented portions of the volume. This can be done w/ an 8-bit volume of the same dimensions as the original. **Low-Resolution while rotating (3 days)<br>Lower sampling rates while moving the volume are not sufficent for large 3D textures. We need to generate a sub-sampled version of large volumes that is rendered when the user changes the camera. This will greatly improve 3d navigation **BioImage style 2D transfer function painting (2 days)<br>The Painter code does not currently have the original dual-domain transfer funciton painting. Re-incorporate the code. **Multi-Resolution Volume Rendering (???)<br>Kurt has a multi-resolution volume renderer intermixed with our volume rendering code. With the above addition of higher resolution sub-volumes, this would be a great thing to also visualize correctly. 1231 1230 2006-04-12T21:36:11Z Cates 4 /* Projects for Segmentaion Application */ wikitext text/x-wiki McKay and Josh, please write and link stuff here about the Painter module project. ===Projects for Segmentation Application=== <pre>The following is a brief list of projects and estimated times to completion for the set of functionality that we would like to get done before the UCSD visit. </pre> * Load Sub-Volumes (1.5 Weeks)<br>Some sort of interface to load from a higher resolution ROI of the current volume<br> ** Design, Spec Interface (2 days) ** Coding of Interface (3 days) ** Coding of Sub-Volume Nrrd Loader (2 days) * Linked Volumes (1.5 Weeks)<br>This is to allow operations (such as the above Load Sub-Volume) to affect multiple layers (volumes) concurrently. Another example would be cropping a volume, and all susequent derived segmentations are also cropped. ** Design, Spec Interface (2-3 days)<br>What tools/filter are affected? Are all operations valid for multiple layers or should we just support a very small subset? ** Coding (4 Days)<br>For demo purposes, only a few operations (Load sub-volume, resample, crop) need to be supported. This should be enough time... *Save / Load Dialogs (3 days)<br>Save, load dialogs need to be available without the use of the network editor.<br>This may take code to internally change the state of the network to add connections to BundeSetNrrd and BundleGetNrrd *Workflow / XML spec / Default Parameters Specification and Design (1 Week)<br>This is almost more of a general GUI layout discussion. How are we going to create customized GUI workflows for specific segmetation datasets? This week of time is just to discuss exactly what framework we will provide for that -- not actually generating and coding these workflows/GUIs. **Create mockup images to show for demo (2 days) *More ITK Filters (1-? Weeks) **Each filter takes about 1 day to incorporate into the workflow. **Any automatically derived parameters from the volume or user generated will take extra coding. * Volume Rednering Improvements (1-? Weeks)<br>We need to evaluate exactly where volume rendering fits into the workflow and what steps to show via volume rendering. **Pixel mask volume (4 days)<br>We need the ability to only render segmented portions of the volume. This can be done w/ an 8-bit volume of the same dimensions as the original. **Low-Resolution while rotating (3 days)<br>Lower sampling rates while moving the volume are not sufficent for large 3D textures. We need to generate a sub-sampled version of large volumes that is rendered when the user changes the camera. This will greatly improve 3d navigation **BioImage style 2D transfer function painting (2 days)<br>The Painter code does not currently have the original dual-domain transfer funciton painting. Re-incorporate the code. **Multi-Resolution Volume Rendering (???)<br>Kurt has a multi-resolution volume renderer intermixed with our volume rendering code. With the above addition of higher resolution sub-volumes, this would be a great thing to also visualize correctly. 3153 1231 2006-04-12T21:36:46Z Cates 4 wikitext text/x-wiki ===Projects for Segmentation Application=== <pre>The following is a brief list of projects and estimated times to completion for the set of functionality that we would like to get done before the UCSD visit. </pre> * Load Sub-Volumes (1.5 Weeks)<br>Some sort of interface to load from a higher resolution ROI of the current volume<br> ** Design, Spec Interface (2 days) ** Coding of Interface (3 days) ** Coding of Sub-Volume Nrrd Loader (2 days) * Linked Volumes (1.5 Weeks)<br>This is to allow operations (such as the above Load Sub-Volume) to affect multiple layers (volumes) concurrently. Another example would be cropping a volume, and all susequent derived segmentations are also cropped. ** Design, Spec Interface (2-3 days)<br>What tools/filter are affected? Are all operations valid for multiple layers or should we just support a very small subset? ** Coding (4 Days)<br>For demo purposes, only a few operations (Load sub-volume, resample, crop) need to be supported. This should be enough time... *Save / Load Dialogs (3 days)<br>Save, load dialogs need to be available without the use of the network editor.<br>This may take code to internally change the state of the network to add connections to BundeSetNrrd and BundleGetNrrd *Workflow / XML spec / Default Parameters Specification and Design (1 Week)<br>This is almost more of a general GUI layout discussion. How are we going to create customized GUI workflows for specific segmetation datasets? This week of time is just to discuss exactly what framework we will provide for that -- not actually generating and coding these workflows/GUIs. **Create mockup images to show for demo (2 days) *More ITK Filters (1-? Weeks) **Each filter takes about 1 day to incorporate into the workflow. **Any automatically derived parameters from the volume or user generated will take extra coding. * Volume Rednering Improvements (1-? Weeks)<br>We need to evaluate exactly where volume rendering fits into the workflow and what steps to show via volume rendering. **Pixel mask volume (4 days)<br>We need the ability to only render segmented portions of the volume. This can be done w/ an 8-bit volume of the same dimensions as the original. **Low-Resolution while rotating (3 days)<br>Lower sampling rates while moving the volume are not sufficent for large 3D textures. We need to generate a sub-sampled version of large volumes that is rendered when the user changes the camera. This will greatly improve 3d navigation **BioImage style 2D transfer function painting (2 days)<br>The Painter code does not currently have the original dual-domain transfer funciton painting. Re-incorporate the code. **Multi-Resolution Volume Rendering (???)<br>Kurt has a multi-resolution volume renderer intermixed with our volume rendering code. With the above addition of higher resolution sub-volumes, this would be a great thing to also visualize correctly. CIBC:Dev:SavingAndReloadingNets 0 1019 3151 2006-04-05T21:30:13Z Jeroen 19 wikitext text/x-wiki == BUG description == When saving a net and then reloading a new network, TCL complains about a large number of variables not being initiated. Ignoring all complaints one can continue, but clicking through a couple of pages of errors is not how it supposed to be. This worked fine until we switched to the XML srn files. THIS NEEDS TO BE FIXED BEFORE THE WORKSHOP. -- Jeroen CIBC:Project:ImageViewer:Timeline 0 1020 1228 2006-04-12T17:41:58Z McKay Davis 5 wikitext text/x-wiki ===Projects for Segmentaion Application=== <pre>The following is a brief list of projects and estimated times to completion for the set of functionality that we would like to get done before the UCSD visit. </pre> * Load Sub-Volumes (1.5 Weeks)<br>Some sort of interface to load from a higher resolution ROI of the current volume<br> ** Design, Spec Interface (2 days) ** Coding of Interface (3 days) ** Coding of Sub-Volume Nrrd Loader (2 days) * Linked Volumes (1.5 Weeks)<br>This is to allow operations (such as the above Load Sub-Volume) to affect multiple layers (volumes) concurrently. Another example would be cropping a volume, and all susequent derived segmentations are also cropped. ** Design, Spec Interface (2-3 days)<br>What tools/filter are affected? Are all operations valid for multiple layers or should we just support a very small subset? ** Coding (4 Days)<br>For demo purposes, only a few operations (Load sub-volume, resample, crop) need to be supported. This should be enough time... * Volume Rednering Improvements (1-? Weeks)<br>We need to evaluate exactly where volume rendering fits into the workflow and what steps to show via volume rendering. **Pixel mask volume (4 days)<br>We need the ability to only render segmented portions of the volume. This can be done w/ an 8-bit volume of the same dimensions as the original. **Low-Resolution while rotating (3 days)<br>Lower sampling rates while moving the volume are not sufficent for large 3D textures. We need to generate a sub-sampled version of large volumes that is rendered when the user changes the camera. This will greatly improve 3d navigation **BioImage style 2D transfer function painting (2 days)<br>The Painter code does not currently have the original dual-domain transfer funciton painting. Re-incorporate the code. **Multi-Resolution Volume Rendering (???)<br>Kurt has a multi-resolution volume renderer intermixed with our volume rendering code. With the above addition of higher resolution sub-volumes, this would be a great thing to also visualize correctly. *Save / Load Dialogs (3 days)<br>Save, load dialogs need to be available without the use of the network editor.<br>This may take code to internally change the state of the network to add connections to BundeSetNrrd and BundleGetNrrd *Workflow / XML spec / Default Parameters Specification and Design (1 Week)<br>This is almost more of a general GUI layout discussion. How are we going to create customized GUI workflows for specific segmetation datasets? This week of time is just to discuss exactly what framework we will provide for that -- not actually generating and coding these workflows/GUIs. **Create mockup images to show for demo (2 days) *More ITK Filters (1-? Weeks) **Each filter takes about 1 day to incorporate into the workflow. **Any automatically derived parameters from the volume or user generated will take extra coding. 3154 1228 2006-04-12T17:45:47Z McKay Davis 5 wikitext text/x-wiki ===Projects for Segmentaion Application=== <pre>The following is a brief list of projects and estimated times to completion for the set of functionality that we would like to get done before the UCSD visit. </pre> * Load Sub-Volumes (1.5 Weeks)<br>Some sort of interface to load from a higher resolution ROI of the current volume<br> ** Design, Spec Interface (2 days) ** Coding of Interface (3 days) ** Coding of Sub-Volume Nrrd Loader (2 days) * Linked Volumes (1.5 Weeks)<br>This is to allow operations (such as the above Load Sub-Volume) to affect multiple layers (volumes) concurrently. Another example would be cropping a volume, and all susequent derived segmentations are also cropped. ** Design, Spec Interface (2-3 days)<br>What tools/filter are affected? Are all operations valid for multiple layers or should we just support a very small subset? ** Coding (4 Days)<br>For demo purposes, only a few operations (Load sub-volume, resample, crop) need to be supported. This should be enough time... *Save / Load Dialogs (3 days)<br>Save, load dialogs need to be available without the use of the network editor.<br>This may take code to internally change the state of the network to add connections to BundeSetNrrd and BundleGetNrrd *Workflow / XML spec / Default Parameters Specification and Design (1 Week)<br>This is almost more of a general GUI layout discussion. How are we going to create customized GUI workflows for specific segmetation datasets? This week of time is just to discuss exactly what framework we will provide for that -- not actually generating and coding these workflows/GUIs. **Create mockup images to show for demo (2 days) *More ITK Filters (1-? Weeks) **Each filter takes about 1 day to incorporate into the workflow. **Any automatically derived parameters from the volume or user generated will take extra coding. * Volume Rednering Improvements (1-? Weeks)<br>We need to evaluate exactly where volume rendering fits into the workflow and what steps to show via volume rendering. **Pixel mask volume (4 days)<br>We need the ability to only render segmented portions of the volume. This can be done w/ an 8-bit volume of the same dimensions as the original. **Low-Resolution while rotating (3 days)<br>Lower sampling rates while moving the volume are not sufficent for large 3D textures. We need to generate a sub-sampled version of large volumes that is rendered when the user changes the camera. This will greatly improve 3d navigation **BioImage style 2D transfer function painting (2 days)<br>The Painter code does not currently have the original dual-domain transfer funciton painting. Re-incorporate the code. **Multi-Resolution Volume Rendering (???)<br>Kurt has a multi-resolution volume renderer intermixed with our volume rendering code. With the above addition of higher resolution sub-volumes, this would be a great thing to also visualize correctly. CIBC:Workshops:Workshop06 0 1021 1235 2006-04-16T16:01:06Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield]] 1237 1235 2006-04-16T16:19:09Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer]] 1241 1237 2006-04-16T17:10:52Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer]] 1243 1241 2006-04-16T17:15:18Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield]] [[CIBC:Workshops:Workshop06:summ-weber|Daron Weber]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer]] 1244 1243 2006-04-16T17:19:17Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield]] [[CIBC:Workshops:Workshop06:summ-weber|Daron Weber]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs]] CIBC:Workshops:Workshop06:summ-wolfer 0 1022 1236 2006-04-16T16:22:37Z Macleod 3 wikitext text/x-wiki ==Summary for James Wolfer== ===Affiliation === ===Summary=== Well, this is a little embarrassing in the sense that I'm an utter "newby" here -- I'm still learning vocabulary. I bumped into your site searching for tools to handle volume images only days before your workshop announcement and conjectured that attending the workshop might be a good way to observe what others are doing with it and jump-start evaluating its suitability and, potentially, shorten the learning curve. Specifically, I am interested in the Bioimage program (or so it seems to me :-), and programming api's for volumetric display, roi extraction, etc. We are considering a CT Angiography project and the ability to easily write code to extract subplanes with arbitrary orientation at specified locations in the volume (with interpolation) ect. is important. It's not clear to me that this suite of products exactly fits my needs, but I felt that this is an opportunity to see. At any rate, I installed Bioimage only a couple of days ago, and have tried with some Dicom volume samples. I like what I see, but ultimately it will be the api and flexibility for interfacing with other programs that I need. So, you should consider me as an observer and not try to do anything specific for my case. I'm too new to the product, and the area, for that to be an effective strategy, and it would unfairly constrain other participants. 3156 1236 2006-04-16T16:23:25Z Macleod 3 wikitext text/x-wiki ==Summary for James Wolfer== ===Affiliation === James Wolfer, Ph.D. <br> email: jwolfer@iusb.edu <br> Associate Professor of Computer Science <br> Indiana University South Bend <br> ===Summary=== Well, this is a little embarrassing in the sense that I'm an utter "newby" here -- I'm still learning vocabulary. I bumped into your site searching for tools to handle volume images only days before your workshop announcement and conjectured that attending the workshop might be a good way to observe what others are doing with it and jump-start evaluating its suitability and, potentially, shorten the learning curve. Specifically, I am interested in the Bioimage program (or so it seems to me :-), and programming api's for volumetric display, roi extraction, etc. We are considering a CT Angiography project and the ability to easily write code to extract subplanes with arbitrary orientation at specified locations in the volume (with interpolation) ect. is important. It's not clear to me that this suite of products exactly fits my needs, but I felt that this is an opportunity to see. At any rate, I installed Bioimage only a couple of days ago, and have tried with some Dicom volume samples. I like what I see, but ultimately it will be the api and flexibility for interfacing with other programs that I need. So, you should consider me as an observer and not try to do anything specific for my case. I'm too new to the product, and the area, for that to be an effective strategy, and it would unfairly constrain other participants. CIBC:Workshops:Workshop06:summ-warfield 0 1023 3157 2006-04-16T16:28:16Z Macleod 3 wikitext text/x-wiki ==Summary for Simon Warfield== ===Affiliation === Computational Radiology Laboratory <br> Department of Radiology <br> Brigham and Women's Hospital <br> === Summary === <p> I am interested in the following: * image segmentation * image registration * bioelectromagnetic field modeling * epilepsy * image guided surgery * newborn MRI * non-standard MR imaging and reconstruction CIBC:Workshops:Workshop06:summ-sharp 0 1024 1238 2006-04-16T17:11:19Z Macleod 3 wikitext text/x-wiki Here are my interests as you requested. Research interests: - Image-guided radiotherapy - Medical imaging - Computer vision & pattern recognition Stuff I'd like to see at the workshop: - Interactive geometry tools (e.g. defining points, curves, surfaces) - Simultaneous viewing of multiple volumetric data sets Greg -- Gregory C. Sharp Dept. of Radiation Oncology Massachusetts General Hospital gcsharp@partners.org / 617-724-3866 http://gray.mgh.harvard.edu 1239 1238 2006-04-16T17:12:32Z Macleod 3 wikitext text/x-wiki ==Summary for Simon Warfield== ===Affiliation === Gregory C. Sharp Dept. of Radiation Oncology Massachusetts General Hospital gcsharp@partners.org / 617-724-3866 http://gray.mgh.harvard.edu === Summary === Here are my interests as you requested.<br> Research interests: *- Image-guided radiotherapy - Medical imaging - Computer vision & pattern recognition Stuff I'd like to see at the workshop: - Interactive geometry tools (e.g. defining points, curves, surfaces) - Simultaneous viewing of multiple volumetric data sets 1240 1239 2006-04-16T17:13:05Z Macleod 3 wikitext text/x-wiki ==Summary for Simon Warfield== ===Affiliation === Gregory C. Sharp Dept. of Radiation Oncology Massachusetts General Hospital gcsharp@partners.org / 617-724-3866 http://gray.mgh.harvard.edu === Summary === Here are my interests as you requested.<br> * Research interests: ** Image-guided radiotherapy ** Medical imaging ** Computer vision & pattern recognition * Stuff I'd like to see at the workshop: ** Interactive geometry tools (e.g. defining points, curves, surfaces) ** Simultaneous viewing of multiple volumetric data sets 1245 1240 2006-04-16T17:13:41Z Macleod 3 wikitext text/x-wiki ==Summary for Simon Warfield== ===Affiliation === Gregory C. Sharp <br> Dept. of Radiation Oncology <br> Massachusetts General Hospital <br> gcsharp@partners.org / 617-724-3866 <br> http://gray.mgh.harvard.edu === Summary === Here are my interests as you requested.<br> * Research interests: ** Image-guided radiotherapy ** Medical imaging ** Computer vision & pattern recognition * Stuff I'd like to see at the workshop: ** Interactive geometry tools (e.g. defining points, curves, surfaces) ** Simultaneous viewing of multiple volumetric data sets CIBC:Workshops:Workshop06:summ-weber 0 1025 3159 2006-04-16T17:16:44Z Macleod 3 wikitext text/x-wiki ==Summary for Darren Weber == ===Affiliation === Darren L. Weber, Ph.D. Postdoctoral Scholar Dynamic Neuroimaging Laboratory, <br> UCSF Department of Radiology, <br> 185 Berry Street, Suite 350, Box 0946, <br> San Francisco, CA 94107, USA. <br> Tel: +1 415 353-9444 <br> Fax: +1 415 353-9421 <br> www: http://dnl.ucsf.edu/users/dweber === Summary === I currently hold a postdoctoral position at UCSF. We are working with a CTF EEG/MEG system that can acquire 275 channels of MEG (radial gradiometers) and 128 channels of EEG. The signal processing demands of this data are significant. We struggle to process this data in common matlab packages, such as EEGLAB, at high temporal resolution, simply due to memory limitations. I would like to run ICA and time-frequency analyses on these data, using c/c++ tools that will compile for linux and sun systems. In addition, I have been working on integration of these data with anatomical models derived from high resolution MRI, following the work of Dale & Sereno (1993) for distributed electromagnetic source estimation. These integration approaches are computationally intensive. Using the freesurfer package from the MGH, it can take several days to process an anatomical dataset simply to extract a detailed model of the cortical surface. For boundary element modeling (BEM) of source activity on the coritical surface, we also require good anatomical models of the skull and scalp surfaces (for EEG). There are some efforts to obtain these surfaces (eg, the FSL BET2 program). The calculation of the MEG/EEG forward solution (ie, calculating sensor data for any given source configuration) is very intensive for BEM and we could benefit from solid routines to generate these data (I am currently using the BrainStorm toolbox for matlab). In addition, the visualization of cortical temporal-spatial dynamics is challenging, because details of visualization are not trivial. The cortical surface is convoluted, so it is often inflated slightly to provide views of the sulcal areas. More importantly, the choice of scale, thresholds and coloring of cortical activity is very important. It is too easy to distort valuable data with poor visualizations. Finally, the results of brain source estimation need to be evaluated for statistical effects, within and across subjects. In this regard, tools to implement the permutation exact tests of Blair & Karnisky (1993 and related papers) would be valuable. I would like to learn more about how the Utah developments have solved these problems and this workshop should provide a short intensive program that can introduce me to the packages provided. I did not get to a previous workshop a few years ago. CIBC:Workshops:Workshop06:summ-kerckhoffs 0 1026 3160 2006-04-16T17:20:21Z Macleod 3 wikitext text/x-wiki ==Summary for Roy Kerckhoffs== ===Affiliation === Roy Kerckhoffs, PhD <br> University of California, San Diego <br> Department of Bioengineering <br> Room 243 Powell-Focht Bioengineering Hall <br> 9500 Gilman Drive <br> La Jolla, Ca 92093-0412 <br> phone: (858) 822-4872 <br> fax: (858) 534-5722 <br> ===Summary=== Here at UCSD in Andrew McCulloch's cardiac mechanics research group, we're developing computational models of cardiac electromechanics, at levels going from cell to whole heart. The latter is coupled to the circulation (system level). That means we're integrating cellular ionic models (for electrophysiology) and myofilament activation models (for mechanics) into our finite element models. These models are used to test hypotheses, provide assistance to setting up experiments, and the final goal will be patient-specific modeling. In the latter, a computational model will be made of a patient, and the effects of all kinds of interventions (pacing, for example) could be investigated to optimize treatment. CIBC:Workshops:Workshop06 0 1021 1246 1244 2006-04-16T17:21:46Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs]] [[CIBC:Workshops:Workshop06:summ-sharp|Dan Schindler]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield]] [[CIBC:Workshops:Workshop06:summ-weber|Daron Weber]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer]] 1247 1246 2006-04-16T17:23:01Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield]] [[CIBC:Workshops:Workshop06:summ-weber|Daron Weber]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer]] 1248 1247 2006-04-16T18:06:03Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler (UCSF)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp (partners.org)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Daron Weber]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer (IUSB)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (partners.org)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] 1250 1248 2006-04-16T18:13:05Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-hyde|Damon Hyde (NEU)]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs* (UCSD)]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp* (MGH)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield* (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Darren Weber* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer* (IUSB, Indiana U)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (MGH)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] 1252 1250 2006-04-16T18:16:01Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-boverman|Greg Boverman (NEU)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-hyde|Damon Hyde* (NEU)]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs* (UCSD)]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp* (MGH)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield* (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Darren Weber* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer* (IUSB, Indiana U)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (MGH)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] 1254 1252 2006-04-16T18:18:06Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-boverman|Greg Boverman* (NEU)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-hyde|Damon Hyde* (NEU)]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs* (UCSD)]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-svendsen|Mark Svendsen* (IUPUI)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp* (MGH)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield* (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Darren Weber* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer* (IUSB, Indiana U)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (MGH)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] 1255 1254 2006-04-16T18:20:30Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-boverman|Greg Boverman* (NEU)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal* (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-hyde|Damon Hyde* (NEU)]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs* (UCSD)]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp* (MGH)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-svendsen|Mark Svendsen* (IUPUI)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield* (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Darren Weber* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer* (IUSB, Indiana U)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (MGH)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] 1256 1255 2006-04-18T18:51:47Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson* (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-boverman|Greg Boverman* (NEU)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal* (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-hyde|Damon Hyde* (NEU)]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs* (UCSD)]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp* (MGH)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-svendsen|Mark Svendsen* (IUPUI)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield* (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Darren Weber* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer* (IUSB, Indiana U)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (MGH)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] 3155 1256 2006-04-23T18:30:44Z Macleod 3 wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == Contact list [[Workshop06-attendees.pdf]] ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson* (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-boverman|Greg Boverman* (NEU)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal* (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-hyde|Damon Hyde* (NEU)]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs* (UCSD)]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp* (MGH)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-svendsen|Mark Svendsen* (IUPUI)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield* (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Darren Weber* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer* (IUSB, Indiana U)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (MGH)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] CIBC:Workshops:Workshop06:summ-sharp 0 1024 3158 1245 2006-04-16T17:22:25Z Macleod 3 wikitext text/x-wiki ==Summary for Greg Sharp== ===Affiliation === Gregory C. Sharp <br> Dept. of Radiation Oncology <br> Massachusetts General Hospital <br> gcsharp@partners.org / 617-724-3866 <br> http://gray.mgh.harvard.edu === Summary === Here are my interests as you requested.<br> * Research interests: ** Image-guided radiotherapy ** Medical imaging ** Computer vision & pattern recognition * Stuff I'd like to see at the workshop: ** Interactive geometry tools (e.g. defining points, curves, surfaces) ** Simultaneous viewing of multiple volumetric data sets CIBC:Workshops:Workshop06:summ-schindler 0 1027 3161 2006-04-16T17:24:10Z Macleod 3 wikitext text/x-wiki ==Summary for Dan Schindler== ===Affiliation === Dan Schindler, RN, MS, CLS <br> Coordinator, ECG Monitoring Research Laboratory <br> University of California, San Francisco <br> 2 Koret Way, Box N610 <br> San Francisco, CA 94143-0610 <br> Email: dan.schindler@nursing.ucsf.edu <br> Phone: (415) 514-3694 <br> Fax: (415) 476-8899 <br> === Summary === My doctoral dissertation will involve the comparison (sensitivity/specificity) of standard 12-lead with optimized lead set 24-hour Holter recordings obtained from N=1308 chest pain patients seen at UCSF emergency dept. The 8-channel optimized data is transformed to estimated 192-lead body surface potential maps (Lux xforms). To facilitate comparison of optimized 192-lead BSPM with standard, I propose we also transform 8-channel standard data in a manner similar to that performed on optimized lead set data, allowing comparison on same spatio-temporal scale. By use of subtraction maps(Map3D), and other metrics, be able to demonstrate the difference of the two methods in detecting ischemia (locating average ST potential distribution extrema)--ultimately to answer the question if optimized/estimated 192-lead BSPM is better that standard 12-lead for detecting myocardial ischemia? CIBC:Workshops:Workshop06:summ-hyde 0 1028 1249 2006-04-16T18:14:24Z Macleod 3 wikitext text/x-wiki ==Summary for Damon Hyde== ===Affiliation === Damon Hyde <br> Electrical and Computer Engineering Department <br> Northeastern University <br> and <br> Center for Molecular Imaging Research <br> Massachusetts General Hospital <p> ===Summary=== Computing plays a vital role in my work on fluorescence molecular tomography (FMT) under Vasilis Ntziachristos at Massachusetts General Hospital. We are rapidly approaching the point where the size of the data sets we collect is limited only by our ability to process and utilize them. Our work has become increasingly collaborative, as we draw upon the knowledge of experts in computational efficency, image analysis/segmentation, and other fields in order to improve and accelerate our tomographic methods. Additionally, as we progress to more complex data sets, and begin to pursue multi-modality imaging systems, our need for efficient algorithmic methods will only increase. In our move to multi-modality imaging, we are increasingly in need of computational methods which group such as CIBC have put significant work into researching. The CIBC software of greatest interest to us is the BioImage package. In order to integrate the information from CT/MRI scans into our tomographic system, we first need methods by which to extract the relevant information. This necessitates the use of visualization and segmentation tools, some of which are being developed at CIBC. Knowledge on the usage of such tools would greatly increase our ability to rapidly develop new techniques for multi-modality imaging, enabling greater image quality and increased utility for those scientists reliant upon our systems. 3162 1249 2006-04-16T18:14:58Z Macleod 3 wikitext text/x-wiki ==Summary for Damon Hyde== ===Affiliation === Damon Hyde <br> Electrical and Computer Engineering Department <br> Northeastern University <br> and <br> Center for Molecular Imaging Research <br> Massachusetts General Hospital <p> ===Summary=== Computing plays a vital role in my work on fluorescence molecular tomography (FMT) under Vasilis Ntziachristos at Massachusetts General Hospital. We are rapidly approaching the point where the size of the data sets we collect is limited only by our ability to process and utilize them. Our work has become increasingly collaborative, as we draw upon the knowledge of experts in computational efficency, image analysis/segmentation, and other fields in order to improve and accelerate our tomographic methods. Additionally, as we progress to more complex data sets, and begin to pursue multi-modality imaging systems, our need for efficient algorithmic methods will only increase. In our move to multi-modality imaging, we are increasingly in need of computational methods which group such as CIBC have put significant work into researching. The CIBC software of greatest interest to us is the BioImage package. In order to integrate the information from CT/MRI scans into our tomographic system, we first need methods by which to extract the relevant information. This necessitates the use of visualization and segmentation tools, some of which are being developed at CIBC. Knowledge on the usage of such tools would greatly increase our ability to rapidly develop new techniques for multi-modality imaging, enabling greater image quality and increased utility for those scientists reliant upon our systems. CIBC:Workshops:Workshop06:summ-boverman 0 1029 1251 2006-04-16T18:16:48Z Macleod 3 wikitext text/x-wiki ==Summary for greg Boverman== ===Affiliation === Greg Boverman <br> gboverma@ece.neu.edu <br> (617) 983-3453 <br> === Summary === I am currently a Ph.D. student in electrical engineering at Northeastern University, researching computational modeling and data inversion for Diffuse Optical Tomography. In the near future, I will be joining Rensselaer as a post-doctoral researcher, working with David Isaacson, who is, I believe, associated with CIBC. At Northeastern, my primary thesis advisor is Prof. Eric Miller, and I also work closely with Prof. Dana Brooks, who is also involved with SCI. I would be very interested in participating in the CIBC workshop this year, and, if possible, I would like to apply for the scholarship, which I would need in order to be able to attend. To date, I have relied for my computational modeling on software which I have developed myself, and on Matlab for visualization, but I would like to learn more about the tools that your center has developed, and perhaps how I can contribute as a user and/or developer. 3163 1251 2006-04-16T18:17:00Z Macleod 3 wikitext text/x-wiki ==Summary for Greg Boverman== ===Affiliation === Greg Boverman <br> gboverma@ece.neu.edu <br> (617) 983-3453 <br> === Summary === I am currently a Ph.D. student in electrical engineering at Northeastern University, researching computational modeling and data inversion for Diffuse Optical Tomography. In the near future, I will be joining Rensselaer as a post-doctoral researcher, working with David Isaacson, who is, I believe, associated with CIBC. At Northeastern, my primary thesis advisor is Prof. Eric Miller, and I also work closely with Prof. Dana Brooks, who is also involved with SCI. I would be very interested in participating in the CIBC workshop this year, and, if possible, I would like to apply for the scholarship, which I would need in order to be able to attend. To date, I have relied for my computational modeling on software which I have developed myself, and on Matlab for visualization, but I would like to learn more about the tools that your center has developed, and perhaps how I can contribute as a user and/or developer. CIBC:Workshops:Workshop06:summ-svendsen 0 1030 1253 2006-04-16T18:19:16Z Macleod 3 wikitext text/x-wiki ==Summary for Mark Svendsen == ===Affiliation === Mark Svendsen <br> Master’s Research Assistant IUPUI <br> 723 West Michigan Street SL 163 <br> Indianapolis, Indiana 46202 ===Summary=== The goal of our computational research is to use the finite element model of the heart and torso developed by SCI to solve the forward problem of electrocardiography. The ultimate goal of the research is to develop three-dimensional isochronal activation surfaces and to use them to produce normal ECG waveforms. After the normal ECG model is developed, it is our goal to place small perturbations due to ischemic heart regions in the model and observe if there are any changes in the ECG. The nature of our research is heavily dependent on the computational capabilities of the FE model. The FE model allows us to observe the changes in the body surface potentials and the ECG for normal and abnormal cardiac activation patterns. Thus, it is critical that we have a computational model that accurately describes the electrical conduction in the torso. The visualization of this model helps us understand where the cardiac activation is occurring and in what direction it is traveling. Eventually this research could be influential in the detection of subtle cardiac conditions. A scholarship to the CIBC conference will allow me to obtain a better understanding of how to improve our modeling techniques for the three dimensional isochronal surfaces. In addition, this conference would give me the opportunity to gain a better understanding of the current methods for modeling/simulation and the future of this area. 3165 1253 2006-04-16T18:19:29Z Macleod 3 wikitext text/x-wiki ==Summary for Mark Svendsen == ===Affiliation === Mark Svendsen <br> Master’s Research Assistant IUPUI <br> 723 West Michigan Street SL 163 <br> Indianapolis, Indiana 46202 ===Summary=== The goal of our computational research is to use the finite element model of the heart and torso developed by SCI to solve the forward problem of electrocardiography. The ultimate goal of the research is to develop three-dimensional isochronal activation surfaces and to use them to produce normal ECG waveforms. After the normal ECG model is developed, it is our goal to place small perturbations due to ischemic heart regions in the model and observe if there are any changes in the ECG. The nature of our research is heavily dependent on the computational capabilities of the FE model. The FE model allows us to observe the changes in the body surface potentials and the ECG for normal and abnormal cardiac activation patterns. Thus, it is critical that we have a computational model that accurately describes the electrical conduction in the torso. The visualization of this model helps us understand where the cardiac activation is occurring and in what direction it is traveling. Eventually this research could be influential in the detection of subtle cardiac conditions. A scholarship to the CIBC conference will allow me to obtain a better understanding of how to improve our modeling techniques for the three dimensional isochronal surfaces. In addition, this conference would give me the opportunity to gain a better understanding of the current methods for modeling/simulation and the future of this area. CIBC:Workshops:Workshop06:summ-dalal 0 1031 3164 2006-04-16T18:21:47Z Macleod 3 wikitext text/x-wiki ==Summary for Simon Warfield== ===Affiliation === Sarang S. Dalal: <sarang@hurricane.ucsf.edu> ===Summary=== I am a PhD candidate with the UCSF/UC Berkeley program in Bioengineering. My research involves developing source reconstructions for magnetoencephalography (MEG -- a noninvasive magnetic brainwave technique) and validating our results with electrocorticography (direct brain recordings from neurosurgery patients). I am the lead developer of NUTMEG, a software toolbox designed to aid in this type of research. (See http://bil.ucsf.edu/nutmeg.html ) One significant limitation to localizing events in the brain with MEG and EEG involves having a robust head model, i.e., an accurate way to estimate the voltages and magnetic fields that would be detected at points on the scalp due to current sources at given points within the brain. Currently, the most common technique involves fitting one or several homogeneous spheres to the scalp surface; however, these models are not adequate as real human heads are not spherical and the tissues within it have complex conductivity profiles. SCIRun and BioFEM implement finite element modeling techniques based on structural MRIs in order to generate an advanced head model based on individual anatomy. Such a head model may be key to more accurately localizing brain activity, or indeed localizing deeper and weaker sources at all. My goal in attending the workshop is to become comfortable with SCIRun and learn how to generate these head models for use in my research. I currently do not have the funding to attend the workshop otherwise. CIBC:Workshops:Workshop06:summ-butson 0 1032 3166 2006-04-18T18:51:24Z Macleod 3 wikitext text/x-wiki ==Summary for Chris Butson== ===Affiliation === Cleveland Clinic Email: butson@sci.utah.edu ===Summary=== * Bioelectric field modeling: We are currently using BioPSE to simulate deep brain and cortical stimulation with a variety of electrode types. * Time-dependent simulations: I have written a custom solver in Matlab that solves the Poisson equation in time and space simultaneously. This solver is being used in place of the quasistatic solver in SCIRun. We will have continuing needs to solve for and view time-dependent data. *Medical visualization: We use BioPSE, Teem and ITK to visualize and manipulate a variety of datasets (MR, CT, DTI). *The largest task so far has been integrating these three areas into one coherent framework. File:Workshop06-attendees.pdf 6 1033 3167 2006-04-23T18:29:15Z Macleod 3 wikitext text/x-wiki CIBC:Dev:Main 0 1017 1258 1257 2006-04-26T20:25:42Z Jeroen 19 /* Developers */ wikitext text/x-wiki == Developers == McKay Davis #[[CIBC:Dev:Painter | Painter module]] Michael Callahan #[[CIBC:Dev:InsertField | InsertField module]] #[[CIBC:Dev:MeshSmoother| Mesh smoother (MESQUITE)]] Darby Van Uitert #[[CIBC:Dev:PowerAppUpdates | Fix PowerApps]] Marty Cole #[[CIBC:Dev:TetGen | TetGen mesh generator]] Dav de St. Germain #[[CIBC:Dev:ThirdParty1.25.3 | ThirdParty 1.25.3]] == High Priority Bugs / Projects == #[[CIBC:Dev:SlowFieldRender | Slow first rendering (just Mac?)]] #[[CIBC:Dev:SavingAndReloadingNets | Saving and reloading nets]] #[[CIBC:Dev:AutomaticResizingGUI| Guis do not resize automatically and a too large GUI window causes problems]] #[[CIBC:Dev:SlowSetupFEMatrix | SetupFEMatrix is 4x slower than it used to be]] == Recently Completed Bugs / Projects == #[[CIBC:Dev:Teem1.9 | Update SCIRun to work with Teem 1.9 -- Darby -- completed 4/4/06]] 1295 1258 2006-04-26T20:50:21Z Jeroen 19 wikitext text/x-wiki == Developers == McKay Davis #[[CIBC:Dev:Painter | Painter module]] Michael Callahan #[[CIBC:Dev:InsertField | InsertField module]] #[[CIBC:Dev:MeshSmoother| Mesh smoother (MESQUITE)]] Darby Van Uitert Marty Cole #[[CIBC:Dev:TetGen | TetGen mesh generator]] #[[CIBC:Dev:FixOrdering| Fix ordering in meshes]] Dav de St. Germain #[[CIBC:Dev:ThirdParty1.25.3 | ThirdParty 1.25.3]] == High Priority Bugs / Projects == #[[CIBC:Dev:SlowFieldRender | Slow first rendering (just Mac?)]] #[[CIBC:Dev:SavingAndReloadingNets | Saving and reloading nets]] #[[CIBC:Dev:AutomaticResizingGUI| Guis do not resize automatically and a too large GUI window causes problems]] #[[CIBC:Dev:SlowSetupFEMatrix | SetupFEMatrix is 4x slower than it used to be]] #[[ | ]] == Recently Completed Bugs / Projects == #[[CIBC:Dev:Teem1.9 | Update SCIRun to work with Teem 1.9 -- Darby -- completed 4/4/06]] #[[CIBC:Dev:PowerAppUpdates | Fix PowerApps]] CIBC:Project:Triedman 0 1008 1260 1259 2006-04-28T15:53:30Z Matthew.jolley@tch.harvard.edu 23 /* Progress */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1261 1260 2006-04-28T15:57:25Z Matthew.jolley@tch.harvard.edu 23 /* Meshing */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a great set of tools and may be integrated into a powerapp type tool that takes models from NRRDs to SCIRun meshes. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1262 1261 2006-04-28T15:59:47Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a great set of tools and may be integrated into a powerapp type tool that takes models from NRRDs to SCIRun meshes. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1263 1262 2006-04-28T16:00:48Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a great set of tools and may be integrated into a powerapp type tool that takes models from NRRDs to SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1264 1263 2006-04-28T16:02:19Z Matthew.jolley@tch.harvard.edu 23 /* Electrode Insertion/Adaptive Remeshing */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == We welcome the help of Dr. Westin's group at SPL, as well as the continued support of Dr. Pieper and Dr. Kindlmann. Efforts are underway to utilize existing level set and EM segmentation techniques developed for the brain for the task of torso segmentation. McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a great set of tools and may be integrated into a powerapp type tool that takes models from NRRDs to SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently undstable with devleopement detailed here: [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1265 1264 2006-04-28T17:24:55Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Initial segmentations will be semi-manual using 3D Slicer. SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a great set of tools and may be integrated into a powerapp type tool that takes models from NRRDs to SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently undstable with devleopement detailed here: [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1266 1265 2006-04-28T17:25:45Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Improved meshing tools are being developed by Jeroen Stinstra and Jason Shepherd as part of the much larger project to improve SCIRun's meshing capabilities in the short term. Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a great set of tools and may be integrated into a powerapp type tool that takes models from NRRDs to SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently undstable with devleopement detailed here: [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1267 1266 2006-04-28T17:27:35Z Matthew.jolley@tch.harvard.edu 23 /* Meshing */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Currently using voxel based mesh created in SCIRun. As detailed at the CIBC workshop, Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools and may be integrated into a powerapp type tool that takes models from NRRDs to SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently undstable with devleopement detailed here: [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1268 1267 2006-04-28T17:29:55Z Matthew.jolley@tch.harvard.edu 23 /* Electrode Insertion/Adaptive Remeshing */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Currently using voxel based mesh created in SCIRun. As detailed at the CIBC workshop, Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools and may be integrated into a powerapp type tool that takes models from NRRDs to SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1269 1268 2006-04-28T17:30:59Z Matthew.jolley@tch.harvard.edu 23 /* Meshing */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Currently using voxel based mesh created in SCIRun. As detailed at the CIBC workshop, Tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1270 1269 2006-04-28T17:31:19Z Matthew.jolley@tch.harvard.edu 23 /* Meshing */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SPL are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Currently using voxel based mesh created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1271 1270 2006-04-28T17:31:41Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in May. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Currently using voxel based mesh created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1272 1271 2006-04-28T17:32:16Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Currently using voxel based mesh created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1273 1272 2006-04-28T17:34:12Z Matthew.jolley@tch.harvard.edu 23 /* Meshing */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1274 1273 2006-04-28T17:35:20Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Progress == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1275 1274 2006-04-28T17:39:40Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Progress Summary == Segmentation: 3D Slicer, SCIRun app under development Automated Segmentation: Under development Meshing: Voxel based working, tetrahedral under development Electrode Insertion: Under development Modeling: Under development == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1276 1275 2006-04-28T17:39:59Z Matthew.jolley@tch.harvard.edu 23 /* Progress Summary */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Progress Summary == Segmentation: 3D Slicer, SCIRun app under development Automated Segmentation: Under development Meshing: Voxel based working, tetrahedral under development Electrode Insertion: Under development Modeling: Under development == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1277 1276 2006-04-28T17:40:26Z Matthew.jolley@tch.harvard.edu 23 /* Progress Summary */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Progress Summary == '''Segmentation:''' 3D Slicer, SCIRun app under development '''Automated Segmentation:''' Under development '''Meshing:''' Voxel based working, tetrahedral under development '''Electrode Insertion:''' Under development '''Modeling: ''' Under development == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1278 1277 2006-04-28T17:40:58Z Matthew.jolley@tch.harvard.edu 23 /* Progress Summary */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Progress Summary == '''Segmentation:''' 3D Slicer, SCIRun app ''under development'' '''Automated Segmentation:''' ''Under development'' '''Meshing:''' Voxel based working, tetrahedral ''under development'' '''Electrode Insertion:''' ''Under development'' '''Modeling: ''' ''Under development'' == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1279 1278 2006-04-28T17:41:29Z Matthew.jolley@tch.harvard.edu 23 /* Events */ wikitext text/x-wiki == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Progress Summary == '''Segmentation:''' 3D Slicer, SCIRun app ''under development'' '''Automated Segmentation:''' ''Under development'' '''Meshing:''' Voxel based working, tetrahedral ''under development'' '''Electrode Insertion:''' ''Under development'' '''Modeling: ''' ''Under development'' == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1280 1279 2006-04-28T17:42:20Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Progress Summary == '''Segmentation:''' 3D Slicer, SCIRun app ''under development'' '''Automated Segmentation:''' ''Under development'' '''Meshing:''' Voxel based working, tetrahedral ''under development'' '''Electrode Insertion:''' ''Under development'' '''Modeling: ''' ''Under development'' == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1281 1280 2006-04-28T18:10:34Z Matthew.jolley@tch.harvard.edu 23 /* Progress Summary */ wikitext text/x-wiki == Progress Summary == '''Segmentation:''' 3D Slicer, SCIRun app ''under development'' '''Automated Segmentation:''' ''Under development'' '''Meshing:''' Voxel based working, tetmeshing beta modules , Mesquite/Verdict beta modules ''under development'' '''Electrode Insertion:''' beta unstable, ''Under development'' '''Modeling: ''' ''Under development'' == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1282 1281 2006-04-28T18:11:45Z Matthew.jolley@tch.harvard.edu 23 /* Progress Summary */ wikitext text/x-wiki == Progress Summary == '''Segmentation:''' 3D Slicer, SCIRun app ''under development'' '''Automated Segmentation:''' ''Under development'' '''Meshing:''' Voxel based working, tetmeshing beta modules(CAMAL/tetgen), Mesquite/Verdict beta modules, ''under development'' '''Electrode Insertion:''' Beta module, unstable, ''Under development'' '''Modeling: ''' ''Under development'' == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently unstable, but anticipate stability in the next couple months. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1283 1282 2006-04-28T18:12:58Z Matthew.jolley@tch.harvard.edu 23 /* Electrode Insertion/Adaptive Remeshing */ wikitext text/x-wiki == Progress Summary == '''Segmentation:''' 3D Slicer, SCIRun app ''under development'' '''Automated Segmentation:''' ''Under development'' '''Meshing:''' Voxel based working, tetmeshing beta modules(CAMAL/tetgen), Mesquite/Verdict beta modules, ''under development'' '''Electrode Insertion:''' Beta module, unstable, ''Under development'' '''Modeling: ''' ''Under development'' == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently crashes, but anticipate progress. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 1348 1283 2006-04-28T18:15:06Z Matthew.jolley@tch.harvard.edu 23 /* Segmentation */ wikitext text/x-wiki == Progress Summary == '''Segmentation:''' 3D Slicer, SCIRun app ''under development'' '''Automated Segmentation:''' ''Under development'' '''Meshing:''' Voxel based working, tetmeshing beta modules(CAMAL/tetgen), Mesquite/Verdict beta modules, ''under development'' '''Electrode Insertion:''' Beta module, unstable, ''Under development'' '''Modeling: ''' ''Under development'' == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin and Dr. Warfield. Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently crashes, but anticipate progress. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. [[Torso Visualization]] [[Placement and Visualization of Clinically Relevant Electrode Orientations Within Torso]] [[Assigning Clinically Relevant Electrode Voltages]] [[Visualization and Visual Investigation of Resultant Myocardial Voltage Gradients]] [[Numerical Data Interogation and Display]] 4/20/06 CIBC Workshop 0 1034 3168 2006-04-28T15:54:42Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Attended CIBC workshop and saw the evolving segmentation powerapp. Also noted the development of new meshing implementations using CAMAL, tetgen, MESQUITE, and VERDICT. Ate some good food. Main Page 0 1 1285 1284 2006-05-18T14:24:02Z Dmw 6 /* Collaborations */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] [[CIBC:Project:Windows_port | Windows Port of SCIRun ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshop === [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1286 1285 2006-05-18T14:24:21Z Dmw 6 /* Collaborations */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshop === [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] Main Page 0 1 1287 1286 2006-05-18T14:24:38Z Dmw 6 /* Technical Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Windows_port | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshop === [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1288 1287 2006-05-18T14:25:01Z Dmw 6 /* Technical Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshop === [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1294 1288 2006-05-22T15:42:48Z Erikj 2 /* Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshop === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1328 1294 2006-05-22T16:03:00Z Erikj 2 /* Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Project:WindowsPort 0 1035 1297 2006-05-18T14:25:33Z Dmw 6 wikitext text/x-wiki Current instructions to get scirun to compile and run under windows: == '''Prerequisites''' == * '''Questions''' ** How do I know if I already have mingw installed? ** Need more info on step 4 of Express install as finding all the right places and things to do is confusing... not sure if I got it right. * '''Download and setup mingw'''<br>Visit http://www.mingw.org/download.shtml, and download and install: ** MinGW-3.1.0-1.exe - http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download ** MSys-1.0.10.exe - http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download *'''Install a MS compiler'''<br>This setup requires MS Visual Studio .NET 2003 or MS Visual C++ 2005 Express Edition. ** If you install C++ Express Edition, please note the following: *** You may download the compiler for free, but you will have to register (Free download is available until November, 2006, at which point it may go away). *** The Express installation (et al) will take at least 1.6 GB of disk space. *** Follow instructions 1-4 on http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ **** (When prompted to choose options, just accept the defaults.) **** On step 2, download the file PSDK-x86.exe '''Note: I have had some problems with the C++ Express version.''' Some modules crash that don't with the 2003 compiler, and the thirdparty currently is compiled with different versions of the C runtime library (which will only give you problems if you debug). *'''Install an SVN client''' If you like, you may download svn from SCI machines on /usr/sci/projects/subversion/windows/svn-1.1.3-setup.exe and an optional GUI from /usr/sci/projects/subversion/windows/TortoiseSVN-1.1.3-UNICODE_svn-1.1.3.msi If you want the newest version of svn, or don't have access to a SCI machine, visit http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 and download svn-x.x.x-setup.exe (where x.x.x is the version number), and install it. The GUI can be downloaded from http://sourceforge.net/project/showfiles.php?group_id=138498&package_id=151948 == '''Getting, configuring, and compiling SCIRun''' == *'''Checkout the SCIRun src tree''' By the command-line: Open a command prompt cd <some-dir> (the directory you want SCIRun in) svn co https://code.sci.utah.edu/svn/SCIRun/trunk SCIRun '''Note: do NOT check out SCIRun into a location that has a space in the path name. (For example, do not check it out into C:\Document and Settings\User\Desktop\ -- rather, put it somewhere like C:\mystuff\)''' By the GUI: Open Windows Explorer and navigate to the directory you want SCIRun in Right-click, and select SVN Checkout Enter https://code.sci.utah.edu/svn/SCIRun/trunk in the URL of repository section Enter the current path+\SCIRun in the Checkout directory section *'''Download and unzip the SCIRun Thirdparty. If you use MS Visual Studio 2003 use: http://www.sci.utah.edu/~worthen/Windows-port/Thirdparty-win32-8.4-vc-13.10.zip If you use MS Visual C++ Express use: http://www.sci.utah.edu/~worthen/Windows-port/Thirdparty-win32-8.4-vc-14.00.zip Unzip it into a directory. '''Note: as with the SCIRun tree, do NOT put Thirdparty in a location with a space in the path name. (For example, put it in c:\mystuff\ rather than in c:\Documents and Settings\).''' *'''configure SCIRun''' Open the MSYS shell cd <SCIRun-dir> mkdir <configuration-name> where configuration-name is how you want to identify the build cd <configuration-name> Download http://www.sci.utah.edu/~worthen/Windows-port/setup-configure.sh into that directory. Edit the setup-configure.sh file and point the PATH_TO_VC PATH_TO_PSDK PATH_TO_MSYS_BIN THIRDPARTY variables to the proper locations. If you used MS Visual Studio 2003, The PATH_TO_PSDK is <PATH-TO-VC>/PlatformSDK. Then: source setup-configure.sh Run configure: ../src/configure --with-thirdparty=<Path-to-Thirdparty> --disable-sci-malloc --with-zlib=<Path-to-Thirdparty> --enable-package='BioPSE Teem' --enable-<debug|optimize> CC=cl CXX=cl Please note the paths to thirdparty and other packages must be in windows format but with forward slashes, like: c:/local/Thirdparty (even if you install it in your msys home dir, you must do what that dir is in windows, like: c:/msys/1.0/home/user/Thirdparty). The enable-package argument is optional, and you may pick either --enable-debug or --enable-optimize. When configure finishes, run make vc Make will then build a solution and project files for you. *'''Edit your system path''' Open the Control Panel, select System, select the Advanced tab, and click the Environment Variables button. Edit the 'Path' variable in the system variables section and add: ;<Path-to-thirdparty>\bin;<path-to-scirun>\<configuration-name>\lib *'''Build SCIRun''' Open Visual Studio or Visual C++ Express, Select File->Open->Project, and select <Path-to-scirun>\<configuration-name>\SCIRun.sln If you are running Visual C++ Express, it will ask to convert your project files to the newer version. Just follow the directions. If you don't want to build everything, you may select the *StandAlone* and *testprograms* projects and remove them. Everything else will be necessary. Start the build (either F7 or Build->Build Solution) Select scirun.exe as the active project - select it, right click, and select 'set as startup project' == '''Running SCIRun''' == In the Visual Studio editor, push CTRL-F5 to run scirun, or F5 to debug (you must have configured with --enable-debug). You may add command-line arguments by Right-clicking on the scirun.exe project, selecting the properties, Under Configuration properties->Debugging, and edit the 'command arguments' section. You may alternatively open a command prompt, and run scirun from there with command-line arguments. == '''Package-specific Instructions''' == *'''Insight Package''' You must first install cmake and the Insight Toolkit in the normal fashion. Download the cmake windows installer from http://www.cmake.org/HTML/Download.html, and run it. Download the ITK source from http://www.itk.org/HTML/Download.php. Go through the questionaire and download InsightToolkit-x.x.x.zip, and unzip it. Run cmake, and in the "Where to build the source code" box enter the path to where you unzipped Insight Toolkit. Choose some other place as a place to build the binaries, and click configure. Choose either "Visual Studio 8 2005" or "Visual Studio 7 .NET 2003" depending on which one you have. NOTE: if you have both, Visual Studio 8 2005 will probably not work. When it finishes configuring, a few red boxes will pop up. Set them: BUILD_EXAMPLES=OFF BUILD_SHARED_LIBS=ON BUILD_TESTING=OFF CMAKE_BACKWARDS_COMPATIBILITY=2.2 CMAKE_INSTALL_PREFIX=<Path-you-want-itk-to-end-up-in> Note, the install path must follow the rules above; i.e., it can't have spaces in the file names. Then click configure again. When it completes, it will have generated a project file in the "Where to build the binaries" directory. Open that project in Visual Studio, and build it. When it completes, you might have to explicitly build the INSTALL package (right-click on it, and select Build). When that is complete, you should be able to add the directory in added for CMAKE_INSTALL_PREFIX to an argument to SCIRun's configure: --with-insight=<path-to-itk> Remember to pass it in the form c:/where/is/itk. If you have previously configured, and then configured again, you will need to close your solution and 'make vc' again as well. Also, you must add <path-to-itk>/bin to your windows path (see instructions in "Getting, configuring, and compiling SCIRun" above). 1298 1297 2006-05-24T05:35:10Z Worthen 39 /* '''Prerequisites''' */ wikitext text/x-wiki Current instructions to get scirun to compile and run under windows: == '''Prerequisites''' == * '''Questions''' ** How do I know if I already have mingw installed? ** Need more info on step 4 of Express install as finding all the right places and things to do is confusing... not sure if I got it right. * '''Download and setup mingw'''<br>Visit http://www.mingw.org/download.shtml, and download and install: ** MinGW-3.1.0-1.exe - http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download ** MSys-1.0.10.exe - http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download *'''Install a MS compiler'''<br>This setup requires MS Visual Studio .NET 2003 or MS Visual C++ 2005 Express Edition. ** Please note, MS Visual Studio .NET (the version before .NET 2003) is not supported and will not work if you try it. ** If you install C++ Express Edition, please note the following: *** You may download the compiler for free, but you will have to register (Free download is available until November, 2006, at which point it may go away). *** The Express installation (et al) will take at least 1.6 GB of disk space. *** Follow instructions 1-4 on http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ **** (When prompted to choose options, just accept the defaults.) **** On step 2, download the file PSDK-x86.exe '''Note: I have had some problems with the C++ Express version.''' Some modules crash that don't with the 2003 compiler, and the thirdparty currently is compiled with different versions of the C runtime library (which will only give you problems if you debug). *'''Install an SVN client''' If you like, you may download svn from SCI machines on /usr/sci/projects/subversion/windows/svn-1.1.3-setup.exe and an optional GUI from /usr/sci/projects/subversion/windows/TortoiseSVN-1.1.3-UNICODE_svn-1.1.3.msi If you want the newest version of svn, or don't have access to a SCI machine, visit http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 and download svn-x.x.x-setup.exe (where x.x.x is the version number), and install it. The GUI can be downloaded from http://sourceforge.net/project/showfiles.php?group_id=138498&package_id=151948 == '''Getting, configuring, and compiling SCIRun''' == *'''Checkout the SCIRun src tree''' By the command-line: Open a command prompt cd <some-dir> (the directory you want SCIRun in) svn co https://code.sci.utah.edu/svn/SCIRun/trunk SCIRun '''Note: do NOT check out SCIRun into a location that has a space in the path name. (For example, do not check it out into C:\Document and Settings\User\Desktop\ -- rather, put it somewhere like C:\mystuff\)''' By the GUI: Open Windows Explorer and navigate to the directory you want SCIRun in Right-click, and select SVN Checkout Enter https://code.sci.utah.edu/svn/SCIRun/trunk in the URL of repository section Enter the current path+\SCIRun in the Checkout directory section *'''Download and unzip the SCIRun Thirdparty. If you use MS Visual Studio 2003 use: http://www.sci.utah.edu/~worthen/Windows-port/Thirdparty-win32-8.4-vc-13.10.zip If you use MS Visual C++ Express use: http://www.sci.utah.edu/~worthen/Windows-port/Thirdparty-win32-8.4-vc-14.00.zip Unzip it into a directory. '''Note: as with the SCIRun tree, do NOT put Thirdparty in a location with a space in the path name. (For example, put it in c:\mystuff\ rather than in c:\Documents and Settings\).''' *'''configure SCIRun''' Open the MSYS shell cd <SCIRun-dir> mkdir <configuration-name> where configuration-name is how you want to identify the build cd <configuration-name> Download http://www.sci.utah.edu/~worthen/Windows-port/setup-configure.sh into that directory. Edit the setup-configure.sh file and point the PATH_TO_VC PATH_TO_PSDK PATH_TO_MSYS_BIN THIRDPARTY variables to the proper locations. If you used MS Visual Studio 2003, The PATH_TO_PSDK is <PATH-TO-VC>/PlatformSDK. Then: source setup-configure.sh Run configure: ../src/configure --with-thirdparty=<Path-to-Thirdparty> --disable-sci-malloc --with-zlib=<Path-to-Thirdparty> --enable-package='BioPSE Teem' --enable-<debug|optimize> CC=cl CXX=cl Please note the paths to thirdparty and other packages must be in windows format but with forward slashes, like: c:/local/Thirdparty (even if you install it in your msys home dir, you must do what that dir is in windows, like: c:/msys/1.0/home/user/Thirdparty). The enable-package argument is optional, and you may pick either --enable-debug or --enable-optimize. When configure finishes, run make vc Make will then build a solution and project files for you. *'''Edit your system path''' Open the Control Panel, select System, select the Advanced tab, and click the Environment Variables button. Edit the 'Path' variable in the system variables section and add: ;<Path-to-thirdparty>\bin;<path-to-scirun>\<configuration-name>\lib *'''Build SCIRun''' Open Visual Studio or Visual C++ Express, Select File->Open->Project, and select <Path-to-scirun>\<configuration-name>\SCIRun.sln If you are running Visual C++ Express, it will ask to convert your project files to the newer version. Just follow the directions. If you don't want to build everything, you may select the *StandAlone* and *testprograms* projects and remove them. Everything else will be necessary. Start the build (either F7 or Build->Build Solution) Select scirun.exe as the active project - select it, right click, and select 'set as startup project' == '''Running SCIRun''' == In the Visual Studio editor, push CTRL-F5 to run scirun, or F5 to debug (you must have configured with --enable-debug). You may add command-line arguments by Right-clicking on the scirun.exe project, selecting the properties, Under Configuration properties->Debugging, and edit the 'command arguments' section. You may alternatively open a command prompt, and run scirun from there with command-line arguments. == '''Package-specific Instructions''' == *'''Insight Package''' You must first install cmake and the Insight Toolkit in the normal fashion. Download the cmake windows installer from http://www.cmake.org/HTML/Download.html, and run it. Download the ITK source from http://www.itk.org/HTML/Download.php. Go through the questionaire and download InsightToolkit-x.x.x.zip, and unzip it. Run cmake, and in the "Where to build the source code" box enter the path to where you unzipped Insight Toolkit. Choose some other place as a place to build the binaries, and click configure. Choose either "Visual Studio 8 2005" or "Visual Studio 7 .NET 2003" depending on which one you have. NOTE: if you have both, Visual Studio 8 2005 will probably not work. When it finishes configuring, a few red boxes will pop up. Set them: BUILD_EXAMPLES=OFF BUILD_SHARED_LIBS=ON BUILD_TESTING=OFF CMAKE_BACKWARDS_COMPATIBILITY=2.2 CMAKE_INSTALL_PREFIX=<Path-you-want-itk-to-end-up-in> Note, the install path must follow the rules above; i.e., it can't have spaces in the file names. Then click configure again. When it completes, it will have generated a project file in the "Where to build the binaries" directory. Open that project in Visual Studio, and build it. When it completes, you might have to explicitly build the INSTALL package (right-click on it, and select Build). When that is complete, you should be able to add the directory in added for CMAKE_INSTALL_PREFIX to an argument to SCIRun's configure: --with-insight=<path-to-itk> Remember to pass it in the form c:/where/is/itk. If you have previously configured, and then configured again, you will need to close your solution and 'make vc' again as well. Also, you must add <path-to-itk>/bin to your windows path (see instructions in "Getting, configuring, and compiling SCIRun" above). 1299 1298 2006-05-25T20:53:33Z Worthen 39 /* '''Prerequisites''' */ wikitext text/x-wiki Current instructions to get scirun to compile and run under windows: == '''Prerequisites''' == * '''Questions''' ** How do I know if I already have mingw installed? ** Need more info on step 4 of Express install as finding all the right places and things to do is confusing... not sure if I got it right. * '''Download and setup mingw'''<br>Visit http://www.mingw.org/download.shtml, and download and install: ** MinGW-3.1.0-1.exe - http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download ** MSys-1.0.10.exe - http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download *'''Install a MS compiler'''<br>This setup requires MS Visual Studio .NET 2003 or MS Visual C++ 2005 Express Edition. ** Please note, MS Visual Studio .NET (the version before .NET 2003) is not supported and will not work if you try it. ** If you install C++ Express Edition, please note the following: *** You may download the compiler for free, but you will have to register (Free download is available until November, 2006, at which point it may go away). *** The Express installation (et al) will take at least 1.6 GB of disk space. *** Follow instructions 1-4 on http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ **** (When prompted to choose options, just accept the defaults.) **** On step 2, download the file PSDK-x86.exe *'''Install an SVN client''' If you like, you may download svn from SCI machines on /usr/sci/projects/subversion/windows/svn-1.1.3-setup.exe and an optional GUI from /usr/sci/projects/subversion/windows/TortoiseSVN-1.1.3-UNICODE_svn-1.1.3.msi If you want the newest version of svn, or don't have access to a SCI machine, visit http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 and download svn-x.x.x-setup.exe (where x.x.x is the version number), and install it. The GUI can be downloaded from http://sourceforge.net/project/showfiles.php?group_id=138498&package_id=151948 == '''Getting, configuring, and compiling SCIRun''' == *'''Checkout the SCIRun src tree''' By the command-line: Open a command prompt cd <some-dir> (the directory you want SCIRun in) svn co https://code.sci.utah.edu/svn/SCIRun/trunk SCIRun '''Note: do NOT check out SCIRun into a location that has a space in the path name. (For example, do not check it out into C:\Document and Settings\User\Desktop\ -- rather, put it somewhere like C:\mystuff\)''' By the GUI: Open Windows Explorer and navigate to the directory you want SCIRun in Right-click, and select SVN Checkout Enter https://code.sci.utah.edu/svn/SCIRun/trunk in the URL of repository section Enter the current path+\SCIRun in the Checkout directory section *'''Download and unzip the SCIRun Thirdparty. If you use MS Visual Studio 2003 use: http://www.sci.utah.edu/~worthen/Windows-port/Thirdparty-win32-8.4-vc-13.10.zip If you use MS Visual C++ Express use: http://www.sci.utah.edu/~worthen/Windows-port/Thirdparty-win32-8.4-vc-14.00.zip Unzip it into a directory. '''Note: as with the SCIRun tree, do NOT put Thirdparty in a location with a space in the path name. (For example, put it in c:\mystuff\ rather than in c:\Documents and Settings\).''' *'''configure SCIRun''' Open the MSYS shell cd <SCIRun-dir> mkdir <configuration-name> where configuration-name is how you want to identify the build cd <configuration-name> Download http://www.sci.utah.edu/~worthen/Windows-port/setup-configure.sh into that directory. Edit the setup-configure.sh file and point the PATH_TO_VC PATH_TO_PSDK PATH_TO_MSYS_BIN THIRDPARTY variables to the proper locations. If you used MS Visual Studio 2003, The PATH_TO_PSDK is <PATH-TO-VC>/PlatformSDK. Then: source setup-configure.sh Run configure: ../src/configure --with-thirdparty=<Path-to-Thirdparty> --disable-sci-malloc --with-zlib=<Path-to-Thirdparty> --enable-package='BioPSE Teem' --enable-<debug|optimize> CC=cl CXX=cl Please note the paths to thirdparty and other packages must be in windows format but with forward slashes, like: c:/local/Thirdparty (even if you install it in your msys home dir, you must do what that dir is in windows, like: c:/msys/1.0/home/user/Thirdparty). The enable-package argument is optional, and you may pick either --enable-debug or --enable-optimize. When configure finishes, run make vc Make will then build a solution and project files for you. *'''Edit your system path''' Open the Control Panel, select System, select the Advanced tab, and click the Environment Variables button. Edit the 'Path' variable in the system variables section and add: ;<Path-to-thirdparty>\bin;<path-to-scirun>\<configuration-name>\lib *'''Build SCIRun''' Open Visual Studio or Visual C++ Express, Select File->Open->Project, and select <Path-to-scirun>\<configuration-name>\SCIRun.sln If you are running Visual C++ Express, it will ask to convert your project files to the newer version. Just follow the directions. If you don't want to build everything, you may select the *StandAlone* and *testprograms* projects and remove them. Everything else will be necessary. Start the build (either F7 or Build->Build Solution) Select scirun.exe as the active project - select it, right click, and select 'set as startup project' == '''Running SCIRun''' == In the Visual Studio editor, push CTRL-F5 to run scirun, or F5 to debug (you must have configured with --enable-debug). You may add command-line arguments by Right-clicking on the scirun.exe project, selecting the properties, Under Configuration properties->Debugging, and edit the 'command arguments' section. You may alternatively open a command prompt, and run scirun from there with command-line arguments. == '''Package-specific Instructions''' == *'''Insight Package''' You must first install cmake and the Insight Toolkit in the normal fashion. Download the cmake windows installer from http://www.cmake.org/HTML/Download.html, and run it. Download the ITK source from http://www.itk.org/HTML/Download.php. Go through the questionaire and download InsightToolkit-x.x.x.zip, and unzip it. Run cmake, and in the "Where to build the source code" box enter the path to where you unzipped Insight Toolkit. Choose some other place as a place to build the binaries, and click configure. Choose either "Visual Studio 8 2005" or "Visual Studio 7 .NET 2003" depending on which one you have. NOTE: if you have both, Visual Studio 8 2005 will probably not work. When it finishes configuring, a few red boxes will pop up. Set them: BUILD_EXAMPLES=OFF BUILD_SHARED_LIBS=ON BUILD_TESTING=OFF CMAKE_BACKWARDS_COMPATIBILITY=2.2 CMAKE_INSTALL_PREFIX=<Path-you-want-itk-to-end-up-in> Note, the install path must follow the rules above; i.e., it can't have spaces in the file names. Then click configure again. When it completes, it will have generated a project file in the "Where to build the binaries" directory. Open that project in Visual Studio, and build it. When it completes, you might have to explicitly build the INSTALL package (right-click on it, and select Build). When that is complete, you should be able to add the directory in added for CMAKE_INSTALL_PREFIX to an argument to SCIRun's configure: --with-insight=<path-to-itk> Remember to pass it in the form c:/where/is/itk. If you have previously configured, and then configured again, you will need to close your solution and 'make vc' again as well. Also, you must add <path-to-itk>/bin to your windows path (see instructions in "Getting, configuring, and compiling SCIRun" above). 2092 1299 2006-05-31T18:10:37Z Worthen 39 /* '''Running SCIRun''' */ wikitext text/x-wiki Current instructions to get scirun to compile and run under windows: == '''Prerequisites''' == * '''Questions''' ** How do I know if I already have mingw installed? ** Need more info on step 4 of Express install as finding all the right places and things to do is confusing... not sure if I got it right. * '''Download and setup mingw'''<br>Visit http://www.mingw.org/download.shtml, and download and install: ** MinGW-3.1.0-1.exe - http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download ** MSys-1.0.10.exe - http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download *'''Install a MS compiler'''<br>This setup requires MS Visual Studio .NET 2003 or MS Visual C++ 2005 Express Edition. ** Please note, MS Visual Studio .NET (the version before .NET 2003) is not supported and will not work if you try it. ** If you install C++ Express Edition, please note the following: *** You may download the compiler for free, but you will have to register (Free download is available until November, 2006, at which point it may go away). *** The Express installation (et al) will take at least 1.6 GB of disk space. *** Follow instructions 1-4 on http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ **** (When prompted to choose options, just accept the defaults.) **** On step 2, download the file PSDK-x86.exe *'''Install an SVN client''' If you like, you may download svn from SCI machines on /usr/sci/projects/subversion/windows/svn-1.1.3-setup.exe and an optional GUI from /usr/sci/projects/subversion/windows/TortoiseSVN-1.1.3-UNICODE_svn-1.1.3.msi If you want the newest version of svn, or don't have access to a SCI machine, visit http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 and download svn-x.x.x-setup.exe (where x.x.x is the version number), and install it. The GUI can be downloaded from http://sourceforge.net/project/showfiles.php?group_id=138498&package_id=151948 == '''Getting, configuring, and compiling SCIRun''' == *'''Checkout the SCIRun src tree''' By the command-line: Open a command prompt cd <some-dir> (the directory you want SCIRun in) svn co https://code.sci.utah.edu/svn/SCIRun/trunk SCIRun '''Note: do NOT check out SCIRun into a location that has a space in the path name. (For example, do not check it out into C:\Document and Settings\User\Desktop\ -- rather, put it somewhere like C:\mystuff\)''' By the GUI: Open Windows Explorer and navigate to the directory you want SCIRun in Right-click, and select SVN Checkout Enter https://code.sci.utah.edu/svn/SCIRun/trunk in the URL of repository section Enter the current path+\SCIRun in the Checkout directory section *'''Download and unzip the SCIRun Thirdparty. If you use MS Visual Studio 2003 use: http://www.sci.utah.edu/~worthen/Windows-port/Thirdparty-win32-8.4-vc-13.10.zip If you use MS Visual C++ Express use: http://www.sci.utah.edu/~worthen/Windows-port/Thirdparty-win32-8.4-vc-14.00.zip Unzip it into a directory. '''Note: as with the SCIRun tree, do NOT put Thirdparty in a location with a space in the path name. (For example, put it in c:\mystuff\ rather than in c:\Documents and Settings\).''' *'''configure SCIRun''' Open the MSYS shell cd <SCIRun-dir> mkdir <configuration-name> where configuration-name is how you want to identify the build cd <configuration-name> Download http://www.sci.utah.edu/~worthen/Windows-port/setup-configure.sh into that directory. Edit the setup-configure.sh file and point the PATH_TO_VC PATH_TO_PSDK PATH_TO_MSYS_BIN THIRDPARTY variables to the proper locations. If you used MS Visual Studio 2003, The PATH_TO_PSDK is <PATH-TO-VC>/PlatformSDK. Then: source setup-configure.sh Run configure: ../src/configure --with-thirdparty=<Path-to-Thirdparty> --disable-sci-malloc --with-zlib=<Path-to-Thirdparty> --enable-package='BioPSE Teem' --enable-<debug|optimize> CC=cl CXX=cl Please note the paths to thirdparty and other packages must be in windows format but with forward slashes, like: c:/local/Thirdparty (even if you install it in your msys home dir, you must do what that dir is in windows, like: c:/msys/1.0/home/user/Thirdparty). The enable-package argument is optional, and you may pick either --enable-debug or --enable-optimize. When configure finishes, run make vc Make will then build a solution and project files for you. *'''Edit your system path''' Open the Control Panel, select System, select the Advanced tab, and click the Environment Variables button. Edit the 'Path' variable in the system variables section and add: ;<Path-to-thirdparty>\bin;<path-to-scirun>\<configuration-name>\lib *'''Build SCIRun''' Open Visual Studio or Visual C++ Express, Select File->Open->Project, and select <Path-to-scirun>\<configuration-name>\SCIRun.sln If you are running Visual C++ Express, it will ask to convert your project files to the newer version. Just follow the directions. If you don't want to build everything, you may select the *StandAlone* and *testprograms* projects and remove them. Everything else will be necessary. Start the build (either F7 or Build->Build Solution) Select scirun.exe as the active project - select it, right click, and select 'set as startup project' == '''Running SCIRun''' == In the Visual Studio editor, push CTRL-F5 to run scirun, or F5 to debug (you must have configured with --enable-debug). You may add command-line arguments by Right-clicking on the scirun.exe project, selecting the properties, Under Configuration properties->Debugging, and edit the 'command arguments' section. You may alternatively open a command prompt, and run scirun from there with command-line arguments. '''Warning: SCIRun doesn't like opening files with spaces in them, so please save your nets without spaces in them.''' == '''Package-specific Instructions''' == *'''Insight Package''' You must first install cmake and the Insight Toolkit in the normal fashion. Download the cmake windows installer from http://www.cmake.org/HTML/Download.html, and run it. Download the ITK source from http://www.itk.org/HTML/Download.php. Go through the questionaire and download InsightToolkit-x.x.x.zip, and unzip it. Run cmake, and in the "Where to build the source code" box enter the path to where you unzipped Insight Toolkit. Choose some other place as a place to build the binaries, and click configure. Choose either "Visual Studio 8 2005" or "Visual Studio 7 .NET 2003" depending on which one you have. NOTE: if you have both, Visual Studio 8 2005 will probably not work. When it finishes configuring, a few red boxes will pop up. Set them: BUILD_EXAMPLES=OFF BUILD_SHARED_LIBS=ON BUILD_TESTING=OFF CMAKE_BACKWARDS_COMPATIBILITY=2.2 CMAKE_INSTALL_PREFIX=<Path-you-want-itk-to-end-up-in> Note, the install path must follow the rules above; i.e., it can't have spaces in the file names. Then click configure again. When it completes, it will have generated a project file in the "Where to build the binaries" directory. Open that project in Visual Studio, and build it. When it completes, you might have to explicitly build the INSTALL package (right-click on it, and select Build). When that is complete, you should be able to add the directory in added for CMAKE_INSTALL_PREFIX to an argument to SCIRun's configure: --with-insight=<path-to-itk> Remember to pass it in the form c:/where/is/itk. If you have previously configured, and then configured again, you will need to close your solution and 'make vc' again as well. Also, you must add <path-to-itk>/bin to your windows path (see instructions in "Getting, configuring, and compiling SCIRun" above). CIBC:Workshops:WorkshopCRC06 0 1036 1289 2006-05-22T15:44:32Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD Register: www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. 1290 1289 2006-05-22T15:48:35Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD Register: [http://www.blsmeetings.net/H1009] (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. 1291 1290 2006-05-22T15:49:30Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. 1292 1291 2006-05-22T15:50:52Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. 1293 1292 2006-05-22T15:58:37Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === [[Image:CRA-NIH-Agenda06-ver5.doc]] 1300 1293 2006-05-22T16:01:44Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === [[Image:CRA-NIH-Agenda06-ver5.doc|Workshop Agenda - CRA-NIH-Agenda06-ver5.doc]] 1301 1300 2006-06-09T16:48:48Z Erikj 2 /* Agenda */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === [[Image:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] 1302 1301 2006-06-09T16:55:36Z Erikj 2 /* Agenda */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === [[Image:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]] [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] 1303 1302 2006-06-09T16:58:25Z Erikj 2 /* Agenda */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === [[http://www.sci.utah.edu/ncrr/wiki/images/CRA-NIH-Agenda06.pdf Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]] [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] 1304 1303 2006-06-09T17:08:10Z Erikj 2 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === [[http://www.sci.utah.edu/ncrr/wiki/images/CRA-NIH-Agenda06.pdf Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] [[Image:PITAC_Computational_th.gif]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]] [[Image:PITAC_Revolutionizing_th.gif]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]] [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] 1305 1304 2006-06-09T17:09:06Z Erikj 2 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === [[http://www.sci.utah.edu/ncrr/wiki/images/CRA-NIH-Agenda06.pdf Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] [[Image:PITAC_Computational_th.gif]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]] [[Image:PITAC_Revolutionizing_th.gif]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]] [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] 1306 1305 2006-06-09T17:32:05Z Erikj 2 /* Agenda */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[http://www.sci.utah.edu/ncrr/wiki/images/CRA-NIH-Agenda06.pdf Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] [[Image:PITAC_Computational_th.gif]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]] [[Image:PITAC_Revolutionizing_th.gif]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]] [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] 1307 1306 2006-06-09T17:32:29Z Erikj 2 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[http://www.sci.utah.edu/ncrr/wiki/images/CRA-NIH-Agenda06.pdf Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === * [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] * [[Image:PITAC_Computational_th.gif]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]] * [[Image:PITAC_Revolutionizing_th.gif]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]] * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] 1308 1307 2006-06-09T17:33:33Z Erikj 2 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[http://www.sci.utah.edu/ncrr/wiki/images/CRA-NIH-Agenda06.pdf Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === * [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] [[Image:PITAC_Computational_th.gif]] * [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]] [[Image:PITAC_Revolutionizing_th.gif]] * [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]] * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] 1309 1308 2006-06-09T17:36:36Z Erikj 2 /* Agenda */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === * [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] [[Image:PITAC_Computational_th.gif]] * [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]] [[Image:PITAC_Revolutionizing_th.gif]] * [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]] * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] 1310 1309 2006-06-09T17:43:37Z Erikj 2 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === * [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]] * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] 1311 1310 2006-06-09T18:00:10Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] 1313 1311 2006-06-09T21:44:46Z CRA-NIH 38 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] 1314 1313 2006-06-11T18:06:18Z Erikj 2 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> 1315 1314 2006-06-12T18:28:03Z Erikj 2 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1316 1315 2006-06-12T19:09:42Z Erikj 2 /* Reports */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1317 1316 2006-06-15T19:26:27Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:Participant_List.pdf|Participant List - Participant_List.pdf]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1318 1317 2006-06-15T19:31:47Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1322 1318 2006-06-16T16:58:02Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> File:CRA-NIH-Agenda06-ver5.doc 6 1037 3173 2006-05-22T15:52:45Z Erikj 2 CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 Agenda wikitext text/x-wiki CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 Agenda CIBC:Dev:Main 0 1017 1296 1295 2006-05-23T18:18:47Z Jeroen 19 /* Developers */ wikitext text/x-wiki == Developers == McKay Davis #[[CIBC:Dev:SegmentationApp | Segmentation Application]] #[[CIBC:Dev:GraphDisplay | Signal Display Window]] Michael Callahan #[[CIBC:Dev:InsertField | InsertField module]] #[[CIBC:Dev:Octree | Meshing stuff for Jason]] #[[CIBC:Dev:VirtualFunctions | Testing and evaluating effort to go to virtual functions]] Darby Van Uitert #[[CIBC:Dev:CMake | CMake for SCIRun Core]] #[[CIBC:Dev:Dart | Building a simple test case for Dart]] Marty Cole #[[CIBC:Dev:BioPSEApp ] Building framework for new BioPSE Applications] #[[CIBC:Dev:ViewerWindow| Fixing the viewer window to work in non TK OpenGL context]] Dav de St. Germain #[[CIBC:Dev:ThirdParty1.25.3 | ThirdParty 1.25.3]] == High Priority Bugs / Projects == #[[CIBC:Dev:SlowFieldRender | Slow first rendering (just Mac?)]] #[[CIBC:Dev:SavingAndReloadingNets | Saving and reloading nets]] #[[CIBC:Dev:AutomaticResizingGUI| Guis do not resize automatically and a too large GUI window causes problems]] #[[CIBC:Dev:SlowSetupFEMatrix | SetupFEMatrix is 4x slower than it used to be]] #[[ | ]] == Recently Completed Bugs / Projects == #[[CIBC:Dev:Teem1.9 | Update SCIRun to work with Teem 1.9 -- Darby -- completed 4/4/06]] #[[CIBC:Dev:PowerAppUpdates | Fix PowerApps]] 3152 1296 2006-05-23T18:23:57Z Jeroen 19 wikitext text/x-wiki == Developers == McKay Davis #[[CIBC:Dev:SegmentationApp | Segmentation Application]] #[[CIBC:Dev:GraphDisplay | Signal Display Window]] Michael Callahan #[[CIBC:Dev:InsertField | InsertField module]] #[[CIBC:Dev:Octree | Meshing stuff for Jason]] #[[CIBC:Dev:VirtualFunctions | Testing and evaluating effort to go to virtual functions]] Darby Van Uitert #[[CIBC:Dev:CMake | CMake for SCIRun Core]] #[[CIBC:Dev:Dart | Building a simple test case for Dart]] Marty Cole #[[CIBC:Dev:BioPSEApp ] Building framework for new BioPSE Applications] #[[CIBC:Dev:ViewerWindow| Fixing the viewer window to work in non TK OpenGL context]] Dav de St. Germain #[[CIBC:Dev:ThirdParty1.25.3 | ThirdParty 1.25.3]] == High Priority Bugs / Projects == #[[CIBC:Dev:SlowFieldRender | Slow first rendering (just Mac?)]] #[[ | ]] == Recently Completed Bugs / Projects == #[[CIBC:Dev:Teem1.9 | Update SCIRun to work with Teem 1.9 -- Darby -- completed 4/4/06]] #[[CIBC:Dev:SlowSetupFEMatrix | SetupFEMatrix is 4x slower than it used to be -- Jeroen -- fixed ]] #[[CIBC:Dev:SavingAndReloadingNets | Saving and reloading nets -- Marty -- completed ]] #[[CIBC:Dev:AutomaticResizingGUI| Guis do not resize automatically and a too large GUI window causes problems -- McKay -- completed]] User:Worthen 2 1038 3174 2006-05-24T05:28:14Z Erikj 2 wikitext text/x-wiki I work with CIBC on the map3d project and the Windows port of SCIRun. User:Darbyb 2 1039 3175 2006-05-24T05:28:52Z Erikj 2 wikitext text/x-wiki Software Developer for the SCI Institute. File:CRA-NIH-Agenda06.pdf 6 1040 3176 2006-06-09T16:47:21Z Erikj 2 Agenda for 2006 CRA-NIH Workshop. wikitext text/x-wiki Agenda for 2006 CRA-NIH Workshop. File:PITAC Computational th.gif 6 1041 3177 2006-06-09T17:04:46Z Erikj 2 Thumbnail for PITAC Report on Computational Science. wikitext text/x-wiki Thumbnail for PITAC Report on Computational Science. File:PITAC Revolutionizing th.gif 6 1042 3178 2006-06-09T17:05:29Z Erikj 2 Thumbnail for PITAC Report on Revolutionizing Health Care Through Information Technology. wikitext text/x-wiki Thumbnail for PITAC Report on Revolutionizing Health Care Through Information Technology. File:NIH-NSF Report th.gif 6 1043 3179 2006-06-09T17:58:46Z Erikj 2 Thumbnail for 2006 NIH/NSF Visualization Research Challenges Report wikitext text/x-wiki Thumbnail for 2006 NIH/NSF Visualization Research Challenges Report CIBC:Collab:Triedman 0 961 1391 1312 2006-06-10T22:40:18Z Matthew.jolley@tch.harvard.edu 23 /* Modeling Internal Defibrillators in Children */ wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Segmentation.JPG|135px]] [[Image:Torsovis1.jpg|150px]] [[Image:Torsoele1.jpg|128px]] [[Image:heartele.jpg|190px]] ---- '''Department of Cardiology, Children's Hospital Boston''' Matthew Jolley, MD John Triedman, MD '''Scientific Computing and Imaging Institute''' Dana Brooks, PhD, NorthEastern University Robert MacLeod, PhD, Utah Jeroen Stinstra, PhD, Utah Joshua Cates, Utah McKay Davis, Utah David Weinstein, PhD, Utah '''Surgical Planning Laboratory''' Carl-Fredrik Westin, PhD Raul San-Jose Estepar, PhD Steve Pieper, PhD Gordon Kindlmann, PhD == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) File:2005 math reports-1.gif 6 1044 3180 2006-06-11T18:02:28Z Erikj 2 Thumbnail for Mathematics and 21st Century Biology Report. wikitext text/x-wiki Thumbnail for Mathematics and 21st Century Biology Report. File:NSB-05-40 th.gif 6 1045 3181 2006-06-12T18:26:33Z Erikj 2 Cover thumbnail for NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century. wikitext text/x-wiki Cover thumbnail for NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century. File:CRA-NIH 2006 Participant List.pdf 6 1047 3182 2006-06-15T19:30:39Z Erikj 2 CRA-NIH Computing Research Challenges in Biomedicine 2006 Workshop Participant List. wikitext text/x-wiki CRA-NIH Computing Research Challenges in Biomedicine 2006 Workshop Participant List. File:CRA-NIH 2006 BlueTeam.ppt 6 1048 3183 2006-06-16T16:54:42Z Erikj 2 CRA-NIH 2006 Workshop Blue Team Slides. wikitext text/x-wiki CRA-NIH 2006 Workshop Blue Team Slides. File:CRA-NIH 2006 GreenTeam.ppt 6 1049 3184 2006-06-16T16:55:06Z Erikj 2 CRA-NIH 2006 Workshop Green Team Slides. wikitext text/x-wiki CRA-NIH 2006 Workshop Green Team Slides. File:CRA-NIH 2006 RedTeam.ppt 6 1050 3185 2006-06-16T16:55:28Z Erikj 2 CRA-NIH 2006 Workshop Red Team Slides. wikitext text/x-wiki CRA-NIH 2006 Workshop Red Team Slides. Talk:Main Page 1 996 1320 1319 2006-06-16T17:08:03Z CRA-NIH 38 Wikipedia to assess tools, programs, expertise, etc wikitext text/x-wiki <div style="overflow:auto; height: 1px;">[http://www.gotboredom.com/banner4/?alprazolam/ alprazolam] [http://prozac.w48.54.ru/ prozac] [http://cheapest-viagra.step.kh.ua/ viagra buying] [http://tramadol.w48.54.ru/ tramadol test] [http://soma.w48.54.ru/ cheap soma] [http://buyambien.step.kh.ua/ buy cheap ambien] [http://rivotril.step.kh.ua/ rivotril info] [http://levitra.w48.54.ru/ buying levitra] [http://levitra-online.step.kh.ua/ levitra ordering] [http://viagra.com Viagra comparison] [http://www.gotboredom.com/banner4/?lorazepam/ cheap lorazepam] [http://ativan.step.kh.ua/ ativan cheapest] [http://www.diariolasamericas.com/ diariolasamericas] [http://www.gotboredom.com/banner4/?ambien/ ambien buying] [http://diazepam.w48.54.ru/ buying diazepam] [http://phentermine-cheap.step.kh.ua/ buying phentermine] [http://www.adelphia.net/ adelphia] [http://www.gotboredom.com/banner4/?didrex/ didrex] [http://www.drugstore.com/ pharmacy pills] [http://online-pharmacy.w48.54.ru/ cheap online pharmacy] [http://buy-lortab.step.kh.ua/ lortab] [http://clonazepam.step.kh.ua/ buy cheap clonazepam] [http://www.gotboredom.com/banner4/?ativan/ ativan order] [http://ambien.w48.54.ru/ ambien] [http://www.cwiakalaart.com/pix/?buy-phentermine-online/ phentermine ordering] [http://www.gotboredom.com/banner4/?rivotril/ rivotril pharmacy] [http://drugs.com/ drugs info] [http://www.wtopnews.com/ topnews news] [http://propecia.w48.54.ru/ propecia buying] [http://www.gotboredom.com/banner4/?diazepam/ cheapest diazepam online] [http://didrex.step.kh.ua/ buy didrex online] [http://horse-betting.w48.54.ru/ betting horse] [http://www.gotboredom.com/banner4/?valium/ valium effects] [http://cialis.w48.54.ru/ cialis testimonials] [http://ambien-zolpidem-online.com/ ambien zolpidem] [http://valium.w48.54.ru/ valium online] [http://www.riteaid.com/ rireAid] [http://dating48.valuehost.ru/cialis-viagra/ viagra pfizer] [http://dress.trx3.com/ prom dresses 2006] [http://buy-valium.step.kh.ua/ valium over] [http://buy-didrex-benzphetamine.com/ didrex benzphetamine] [http://diazepam.step.kh.ua/ diazepam pharmacy] [http://stilnox.w48.54.ru/ stilnox] [http://www.gotboredom.com/banner4/?xanax/ xanax bar] [http://viagra.w48.54.ru/ buying cheapest viagra] [http://tramadol.step.kh.ua/ tramadol ultram] [http://codeine.step.kh.ua/ codeine cheapest] [http://www.gotboredom.com/banner4/?tramadol/ cheapest tramadol] [http://phentermine.w48.54.ru/ phentermine diet] [http://www.gatepharma.com/ pharmacy gatepharma] [http://alprazolam.w48.54.ru/ alprazolam side] [http://texas-holdem.step.kh.ua/ casino texas holdem] [http://cheap-cialis.step.kh.ua/ online cialis] [http://www.gotboredom.com/banner4/?adipex/ adipex loss] [http://didrex.w48.54.ru/ didrex diet pills] [http://poker-room.step.kh.ua/ poker room] [http://buy-prozac.step.kh.ua/ cheap prozac] [http://xanax.w48.54.ru/ xanax] [http://adipex.w48.54.ru/ adipex online] [http://www.gotboredom.com/banner4/?phentermine/ buy phentermine] [http://rivotril.w48.54.ru/ rivotril online] == Wikipedia to assess tools, programs, expertise, etc == I'd like to propose to start a project for creating a wikipedia to assess tools, programs, expertise, etc to follow up on the action items of Computing research challenges in biomedicine meeting. Creating wikipedia is a more complicated project then just setting up a wiki. It requires a bit of data modeling, categorization and disambiguation work, keeping track of contributors and conflict resolution. However, having the entire community of interest to contribute to it has a promise of real value. Olga Brazhnik 3134 1320 2006-06-16T17:09:53Z CRA-NIH 38 wikitext text/x-wiki <div style="overflow:auto; height: 1px;">[http://www.gotboredom.com/banner4/?alprazolam/ alprazolam] [http://prozac.w48.54.ru/ prozac] [http://cheapest-viagra.step.kh.ua/ viagra buying] [http://tramadol.w48.54.ru/ tramadol test] [http://soma.w48.54.ru/ cheap soma] [http://buyambien.step.kh.ua/ buy cheap ambien] [http://rivotril.step.kh.ua/ rivotril info] [http://levitra.w48.54.ru/ buying levitra] [http://levitra-online.step.kh.ua/ levitra ordering] [http://viagra.com Viagra comparison] [http://www.gotboredom.com/banner4/?lorazepam/ cheap lorazepam] [http://ativan.step.kh.ua/ ativan cheapest] [http://www.diariolasamericas.com/ diariolasamericas] [http://www.gotboredom.com/banner4/?ambien/ ambien buying] [http://diazepam.w48.54.ru/ buying diazepam] [http://phentermine-cheap.step.kh.ua/ buying phentermine] [http://www.adelphia.net/ adelphia] [http://www.gotboredom.com/banner4/?didrex/ didrex] [http://www.drugstore.com/ pharmacy pills] [http://online-pharmacy.w48.54.ru/ cheap online pharmacy] [http://buy-lortab.step.kh.ua/ lortab] [http://clonazepam.step.kh.ua/ buy cheap clonazepam] [http://www.gotboredom.com/banner4/?ativan/ ativan order] [http://ambien.w48.54.ru/ ambien] [http://www.cwiakalaart.com/pix/?buy-phentermine-online/ phentermine ordering] [http://www.gotboredom.com/banner4/?rivotril/ rivotril pharmacy] [http://drugs.com/ drugs info] [http://www.wtopnews.com/ topnews news] [http://propecia.w48.54.ru/ propecia buying] [http://www.gotboredom.com/banner4/?diazepam/ cheapest diazepam online] [http://didrex.step.kh.ua/ buy didrex online] [http://horse-betting.w48.54.ru/ betting horse] [http://www.gotboredom.com/banner4/?valium/ valium effects] [http://cialis.w48.54.ru/ cialis testimonials] [http://ambien-zolpidem-online.com/ ambien zolpidem] [http://valium.w48.54.ru/ valium online] [http://www.riteaid.com/ rireAid] [http://dating48.valuehost.ru/cialis-viagra/ viagra pfizer] [http://dress.trx3.com/ prom dresses 2006] [http://buy-valium.step.kh.ua/ valium over] [http://buy-didrex-benzphetamine.com/ didrex benzphetamine] [http://diazepam.step.kh.ua/ diazepam pharmacy] [http://stilnox.w48.54.ru/ stilnox] [http://www.gotboredom.com/banner4/?xanax/ xanax bar] [http://viagra.w48.54.ru/ buying cheapest viagra] [http://tramadol.step.kh.ua/ tramadol ultram] [http://codeine.step.kh.ua/ codeine cheapest] [http://www.gotboredom.com/banner4/?tramadol/ cheapest tramadol] [http://phentermine.w48.54.ru/ phentermine diet] [http://www.gatepharma.com/ pharmacy gatepharma] [http://alprazolam.w48.54.ru/ alprazolam side] [http://texas-holdem.step.kh.ua/ casino texas holdem] [http://cheap-cialis.step.kh.ua/ online cialis] [http://www.gotboredom.com/banner4/?adipex/ adipex loss] [http://didrex.w48.54.ru/ didrex diet pills] [http://poker-room.step.kh.ua/ poker room] [http://buy-prozac.step.kh.ua/ cheap prozac] [http://xanax.w48.54.ru/ xanax] [http://adipex.w48.54.ru/ adipex online] [http://www.gotboredom.com/banner4/?phentermine/ buy phentermine] [http://rivotril.w48.54.ru/ rivotril online] Talk:CIBC:Workshops:WorkshopCRC06 1 1051 1321 2006-06-16T17:10:59Z CRA-NIH 38 Wikipedia to assess tools, programs, expertise, etc wikitext text/x-wiki I'd like to propose to start a project for creating a Wikipedia to assess tools, programs, expertise, etc to follow up on the action items of Computing research challenges in biomedicine meeting. Creating wikipedia is a more complicated project then just setting up a wiki. It requires a bit of data modeling, categorization and disambiguation work, keeping track of contributors and conflict resolution. However, having the entire community of interest to contribute to it has a promise of real value. Olga Brazhnik 3186 1321 2006-06-16T18:05:49Z CRA-NIH 38 wikitext text/x-wiki I'd like to propose to start a project for creating a Wikipedia to assess tools, programs, expertise, etc to follow up on the action items of Computing research challenges in biomedicine meeting. Creating wikipedia is a more complicated project then just setting up a wiki. It requires quite a bit of data modeling, categorization and disambiguation work, keeping track of contributors and conflict resolution. However, having the entire community of interest to contribute to it has a promise of real value. Collecting all this information in one place will allow us to start organizing the abundance and complexity of existing tools and systems into a meaningful body of resources and knowledge. Olga Brazhnik File:CRA-NIH 2006 Workshop-Goals.ppt 6 1052 3187 2006-06-16T20:05:36Z Erikj 2 CRA-NIH 2006 Workshop Overview and Goals slides. wikitext text/x-wiki CRA-NIH 2006 Workshop Overview and Goals slides. CIBC:Workshops:WorkshopCRC06 0 1036 1323 1322 2006-06-16T20:08:17Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1324 1323 2006-06-17T19:43:46Z Erikj 2 wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH_2006_RedTeam.ppt|Chris Johnson's Presentation (Large 63MB) - CRA-NIH_2006_RedTeam.ppt]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1325 1324 2006-06-17T19:44:42Z Erikj 2 /* Workshop Presentations */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH-Workshop06-Johnson.pdf|Chris Johnson's Presentation (Large 63MB) - CRA-NIH-Workshop06-Johnson.pdf]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1326 1325 2006-06-17T19:46:01Z Erikj 2 /* Workshop Presentations */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH-Workshop06-Johnson.pdf|Chris Johnson's Presentation (Large 61MB) - CRA-NIH-Workshop06-Johnson.pdf]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1327 1326 2006-06-17T19:47:32Z Erikj 2 /* Workshop Presentations */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH-Workshop06-Johnson.pdf|Chris Johnson's Presentation (Large 61MB) - CRA-NIH-Workshop06-Johnson.pdf]] * Lee Hood's Presentation * Jill Mesirov's Presentation * Dan Reed's Presentation === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1349 1327 2006-06-22T04:15:35Z Erikj 2 /* Workshop Presentations */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH-Workshop06-Johnson.pdf|Chris Johnson's Presentation (Large 61MB) - CRA-NIH-Workshop06-Johnson.pdf]] * Lee Hood's Presentation * Jill Mesirov's Presentation * [[Media:CRA-NIH-Reed06.pdf|Dan Reed's Presentation (Large 15MB) - CRA-NIH-Reed06.pdf]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 1359 1349 2006-07-25T17:36:46Z Erikj 2 /* Participant List */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] * [[Media:CRA-NIH_Workshop_Final_Registration_List_7-3-06.pdf|Final Registration List - CRA-NIH_Workshop_Final_Registration_List_7-3-06.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH-Workshop06-Johnson.pdf|Chris Johnson's Presentation (Large 61MB) - CRA-NIH-Workshop06-Johnson.pdf]] * Lee Hood's Presentation * Jill Mesirov's Presentation * [[Media:CRA-NIH-Reed06.pdf|Dan Reed's Presentation (Large 15MB) - CRA-NIH-Reed06.pdf]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> Main Page 0 1 1365 1328 2006-06-22T15:46:26Z Mjc 35 /* Technical Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:01_Feb_06 | February 1st, 2006]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Project:Power App 0 1053 1329 2006-06-22T15:54:32Z Mjc 35 wikitext text/x-wiki afront generated surface meshes. [[Image:afront-body.png]] [[Image:afront-body-inner.png]] CAMAL mesher (2.5mins) ------------------------------------------- Number of Tet elements checked = '''3000434''' Euler characteristics for this mesh indicate 1 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 Condition: Low = 1.00002, Average = 1.2456, High = 592.311 Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031 Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 1330 1329 2006-06-22T15:55:18Z Mjc 35 wikitext text/x-wiki afront generated surface meshes. [[Image:afront-body.png]] [[Image:afront-body-inner.png]] CAMAL mesher (2.5mins) ------------------------------------------- Number of Tet elements checked = '''3000434''' <nowiki>Euler characteristics for this mesh indicate 1 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 Condition: Low = 1.00002, Average = 1.2456, High = 592.311 Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031 Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1</nowiki> 1331 1330 2006-06-22T16:00:14Z Mjc 35 wikitext text/x-wiki afront generated surface meshes. [[Image:afront-body.png]] [[Image:afront-body-inner.png]] CAMAL mesher (2.5mins) ------------------------------------------- * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1332 1331 2006-06-22T16:07:33Z Mjc 35 wikitext text/x-wiki ==afront generated surfaces == === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === CAMAL mesher (2.5 mins) === * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1333 1332 2006-06-22T16:12:01Z Mjc 35 /* Images */ wikitext text/x-wiki ==afront generated surfaces == === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === CAMAL mesher (2.5 mins) === * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1334 1333 2006-06-22T16:24:50Z Mjc 35 /* afront generated surfaces */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === Tetgen mesher -pq (35 mins) === * Number of Tet elements checked = '''3946715''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3946715 Faces: 7899982 Edges: 4618865 Nodes: 665599 * Aspect Ratio: Low = 1.00042, Average = 18.1245, High = 2.85619e+07 * Aspect Ratio (gamma): Low = 1.00115, Average = 2.3695, High = 10331.2 * Volume: Low = 1.74183e-07, Average = 5.20151, High = 13596.7 * Condition: Low = 1.00032, Average = 1.79882, High = 6265.48 * Jacobian: Low = 1.0451e-06, Average = 31.2091, High = 81579.9 * '''Scaled_Jacobian: Low = 6.51916e-05, Average = 0.361281, High = 0.990632''' * Shape: Low = 0.00210906, Average = 0.638352, High = 0.999675 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === Tetgen mesher -p (2 mins) === === CAMAL mesher (2.5 mins) === * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1335 1334 2006-06-22T16:27:42Z Mjc 35 /* Tetgen mesher -p (2 mins) */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === Tetgen mesher -pq (35 mins) === * Number of Tet elements checked = '''3946715''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3946715 Faces: 7899982 Edges: 4618865 Nodes: 665599 * Aspect Ratio: Low = 1.00042, Average = 18.1245, High = 2.85619e+07 * Aspect Ratio (gamma): Low = 1.00115, Average = 2.3695, High = 10331.2 * Volume: Low = 1.74183e-07, Average = 5.20151, High = 13596.7 * Condition: Low = 1.00032, Average = 1.79882, High = 6265.48 * Jacobian: Low = 1.0451e-06, Average = 31.2091, High = 81579.9 * '''Scaled_Jacobian: Low = 6.51916e-05, Average = 0.361281, High = 0.990632''' * Shape: Low = 0.00210906, Average = 0.638352, High = 0.999675 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === Tetgen mesher -p (2 mins) === * Number of Tet elements checked = '''863822''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 863822 Faces: 1734219 Edges: 1008243 Nodes: 137847 * Aspect Ratio: Low = 1.00074, Average = 15.9771, High = 1.76352e+06 * Aspect Ratio (gamma): Low = 1.00159, Average = 37.1708, High = 151366 * Volume: Low = 1.20267e-07, Average = 23.7652, High = 66401.5 * Condition: Low = 1.00062, Average = 5.98279, High = 8885.71 * Jacobian: Low = 7.216e-07, Average = 142.591, High = 398409 * '''Scaled_Jacobian: Low = 2.33833e-06, Average = 0.163848, High = 0.980264''' * Shape: Low = 0.000352241, Average = 0.343499, High = 0.99938 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1336 1335 2006-06-22T16:48:16Z Mjc 35 /* Tetgen mesher -pq (35 mins) */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pq (35 mins) === * Number of Tet elements checked = '''3946715''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3946715 Faces: 7899982 Edges: 4618865 Nodes: 665599 * Aspect Ratio: Low = 1.00042, Average = 18.1245, High = 2.85619e+07 * Aspect Ratio (gamma): Low = 1.00115, Average = 2.3695, High = 10331.2 * Volume: Low = 1.74183e-07, Average = 5.20151, High = 13596.7 * Condition: Low = 1.00032, Average = 1.79882, High = 6265.48 * Jacobian: Low = 1.0451e-06, Average = 31.2091, High = 81579.9 * '''Scaled_Jacobian: Low = 6.51916e-05, Average = 0.361281, High = 0.990632''' * Shape: Low = 0.00210906, Average = 0.638352, High = 0.999675 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === Tetgen mesher -p (2 mins) === * Number of Tet elements checked = '''863822''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 863822 Faces: 1734219 Edges: 1008243 Nodes: 137847 * Aspect Ratio: Low = 1.00074, Average = 15.9771, High = 1.76352e+06 * Aspect Ratio (gamma): Low = 1.00159, Average = 37.1708, High = 151366 * Volume: Low = 1.20267e-07, Average = 23.7652, High = 66401.5 * Condition: Low = 1.00062, Average = 5.98279, High = 8885.71 * Jacobian: Low = 7.216e-07, Average = 142.591, High = 398409 * '''Scaled_Jacobian: Low = 2.33833e-06, Average = 0.163848, High = 0.980264''' * Shape: Low = 0.000352241, Average = 0.343499, High = 0.99938 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1337 1336 2006-06-22T16:48:24Z Mjc 35 /* Tetgen mesher -p (2 mins) */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pq (35 mins) === * Number of Tet elements checked = '''3946715''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3946715 Faces: 7899982 Edges: 4618865 Nodes: 665599 * Aspect Ratio: Low = 1.00042, Average = 18.1245, High = 2.85619e+07 * Aspect Ratio (gamma): Low = 1.00115, Average = 2.3695, High = 10331.2 * Volume: Low = 1.74183e-07, Average = 5.20151, High = 13596.7 * Condition: Low = 1.00032, Average = 1.79882, High = 6265.48 * Jacobian: Low = 1.0451e-06, Average = 31.2091, High = 81579.9 * '''Scaled_Jacobian: Low = 6.51916e-05, Average = 0.361281, High = 0.990632''' * Shape: Low = 0.00210906, Average = 0.638352, High = 0.999675 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -p (2 mins) === * Number of Tet elements checked = '''863822''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 863822 Faces: 1734219 Edges: 1008243 Nodes: 137847 * Aspect Ratio: Low = 1.00074, Average = 15.9771, High = 1.76352e+06 * Aspect Ratio (gamma): Low = 1.00159, Average = 37.1708, High = 151366 * Volume: Low = 1.20267e-07, Average = 23.7652, High = 66401.5 * Condition: Low = 1.00062, Average = 5.98279, High = 8885.71 * Jacobian: Low = 7.216e-07, Average = 142.591, High = 398409 * '''Scaled_Jacobian: Low = 2.33833e-06, Average = 0.163848, High = 0.980264''' * Shape: Low = 0.000352241, Average = 0.343499, High = 0.99938 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1338 1337 2006-06-26T21:33:05Z Mjc 35 /* TetGen mesher -pq (35 mins) */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -p (2 mins) === * Number of Tet elements checked = '''863822''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 863822 Faces: 1734219 Edges: 1008243 Nodes: 137847 * Aspect Ratio: Low = 1.00074, Average = 15.9771, High = 1.76352e+06 * Aspect Ratio (gamma): Low = 1.00159, Average = 37.1708, High = 151366 * Volume: Low = 1.20267e-07, Average = 23.7652, High = 66401.5 * Condition: Low = 1.00062, Average = 5.98279, High = 8885.71 * Jacobian: Low = 7.216e-07, Average = 142.591, High = 398409 * '''Scaled_Jacobian: Low = 2.33833e-06, Average = 0.163848, High = 0.980264''' * Shape: Low = 0.000352241, Average = 0.343499, High = 0.99938 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1339 1338 2006-06-26T21:36:48Z Mjc 35 /* afront generated surfaces */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1340 1339 2006-06-26T21:41:18Z Mjc 35 /* CAMAL mesher (2.5 mins) */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1341 1340 2006-06-27T15:58:34Z Mjc 35 /* afront generated surfaces */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1342 1341 2006-06-27T15:58:53Z Mjc 35 /* TetGen mesher -pq1.0AAa200.0z (30 mins) */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 1343 1342 2006-06-27T19:38:19Z Mjc 35 /* afront generated surfaces */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 ==marching cubes (SCIRun isosurface module) generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === 1344 1343 2006-06-27T19:41:48Z Mjc 35 /* marching cubes (SCIRun isosurface module) generated surfaces */ wikitext text/x-wiki ==afront generated surfaces == '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === 1345 1344 2006-06-27T19:42:04Z Mjc 35 /* afront generated surfaces */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === 1346 1345 2006-06-27T19:45:49Z Mjc 35 /* marching cubes (SCIRun isosurface module) generated surfaces */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' At this time I cannot get a FE mesh generated including the Heart surface, but below are the results for torso boundary, bones, and lungs. The results are still an interesting comparison. === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === 1347 1346 2006-06-27T19:47:18Z Mjc 35 /* marching cubes (SCIRun isosurface module) generated surfaces */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' At this time I cannot get a FE mesh generated including the Heart surface, (probably because the heart surface intersects the lungs somewhere) but below are the results for torso boundary, bones, and lungs. The results are still an interesting comparison. === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === 3188 1347 2006-06-27T19:55:40Z Mjc 35 /* TetGen mesher -pqAAa200.0z (1:35 hours) */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (2.5 mins) === '''Note:''' ''This is mostly innacurate, This code does not mesh the inside of the interior structures, so I will need to mesh those separately and merge the meshes using the GatherFields module. The following most likely applies from the torso boundary to the interior structures.'' * Number of Tet elements checked = '''3000434''' * Euler characteristics for this mesh indicate 1 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3000434 Faces: 6050939 Edges: 3576764 Nodes: 526259 * Aspect Ratio: Low = 1.00002, Average = 1.53629, High = 277395 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37812, High = 1242.68 * Volume: Low = 3.15534e-06, Average = 5.72325, High = 1093.85 * Condition: Low = 1.00002, Average = 1.2456, High = 592.311 * Jacobian: Low = 1.8932e-05, Average = 34.3395, High = 6563.09 * '''Scaled_Jacobian: Low = 0.000358669, Average = 0.616211, High = 0.997031''' * Shape: Low = 0.00865538, Average = 0.828331, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' At this time I cannot get a FE mesh generated including the Heart surface, (probably because the heart surface intersects the lungs somewhere) but below are the results for torso boundary, bones, and lungs. The results are still an interesting comparison. === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === * Number of Tet elements checked = '''14300408''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 14300408 Faces: 29156724 Edges: 17524972 Nodes: 2668657 * Aspect Ratio: Low = 1.00006, Average = 1.06422e+21, High = 1.45221e+28 * Aspect Ratio (gamma): Low = 1.00073, Average = 3.44334e+07, High = 3.81639e+14 * Volume: Low = 3.83988e-19, Average = 1.4405, High = 266.872 * Condition: Low = 1.00005, Average = 1.9262e+07, High = 2.33327e+14 * Jacobian: Low = 2.30393e-18, Average = 8.64298, High = 1601.23 * '''Scaled_Jacobian: Low = 1.40881e-15, Average = 0.37441, High = 0.995652''' * Shape: Low = 1.90147e-10, Average = 0.635895, High = 0.999953 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 File:Afront-body.png 6 1054 3189 2006-06-22T16:09:17Z Mjc 35 wikitext text/x-wiki File:Afront-body-inner.png 6 1055 3190 2006-06-22T16:10:50Z Mjc 35 wikitext text/x-wiki File:Mc-body.png 6 1056 3191 2006-06-27T19:39:06Z Mjc 35 wikitext text/x-wiki File:Mc-body-inner.png 6 1057 3192 2006-06-27T19:39:33Z Mjc 35 wikitext text/x-wiki CIBC:Project:Triedman 0 1008 3129 1348 2006-07-06T15:20:40Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Progress Summary == For current development visit the Cardio-MDC site, contact Matt Jolley for access '''Segmentation:''' 3D Slicer, SCIRun app ''under development'' '''Automated Segmentation:''' ''Under development'' '''Meshing:''' Voxel based working, tetmeshing beta modules(CAMAL/tetgen), Mesquite/Verdict beta modules, ''under development'' '''Electrode Insertion:''' Beta module, unstable, ''Under development'' '''Modeling: ''' ''Under development'' == Introduction == This is a wiki designed for facilitating communication in the development of individual tools for solving the the volume conductor problem in medical imaging based datasets with an eye toward modeling defibrillation in children. For an overview of the project please look to our [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Collab:Triedman collaboration wiki]. == Events == [[2/10/06 Meeting with SPL Segmentation folks]] [[3/1/06 Collaboration formalized and grant submitted to CIMIT for further work]] [[4/20/06 CIBC Workshop]] == Segmentation == Existing segmentations: 10 kg, 40 kg, 15 kg partial SPL: We will attempt to apply level set techniques with Dr. Westin's group and adapt algorithms developed by Kilian Pohl. SCIRun: McKay Davis and Josh Cates at SCI are also creating a segmentation powerapp which was demoed at the CIBC conference in April. It currently lacks a GUI but renders the evolving 3D segmentation in real time and will be very useful. Josh worked to develop ITK and many of the segmentation alorithms available in ITK will be added as useful. Atlas: Once ~ 5 segmentations have been done we can possibly employ atlas based techniques with Dr. Westin and Dr. Warfield. Data: Hoping to obtain 64 detector CT scans of children for improved ease of segmentation secondary to increased tissue differentiation. == Meshing == Currently using simple voxel based meshing created in SCIRun. As detailed at the CIBC workshop, tetgen and CAMAL are both working as mesh generators, with tetgen appearing to be the better tool. The latest version of CAMAL has been behaving strangely. MESQUITE is being integrated to allow variable density meshing and mesh smoothing. VERDICT is being implemented to allow mesh quality assessment. Together this should provide a complete set of tools that takes models from NRRDs to tetrahedral SCIRun meshes which will benefit many researchers, including the MEG group at UCSF. == Electrode Insertion/Adaptive Remeshing == Dave Weinstein has built modules which allow the insertion of arbitrarily shaped linear and planar fields into an existing mesh with adaptive remeshing. It is currently crashes, but anticipate progress. [http://www.sci.utah.edu/ncrr/wiki/index.php/CIBC:Project:MeshRefinement Electrode Insertion in Volume Conductor] == FEM Modeling == The end result of the process above is the possibility of patient specific modeling of internal defibrillation in children. Functional nets and datasets available on the xythos site. User:Rboyer 2 1058 3169 2006-07-11T19:43:03Z Rboyer 40 wikitext text/x-wiki Johns Hopkins University BME File:CRA-NIH Workshop Final Registration List 7-3-06.pdf 6 1059 3170 2006-07-25T17:33:39Z Erikj 2 CRA-NIH 2006 Workshop Final Registration List - 7/3/06 wikitext text/x-wiki CRA-NIH 2006 Workshop Final Registration List - 7/3/06 User:Toly 2 1060 3193 2006-08-01T22:33:05Z Erikj 2 wikitext text/x-wiki I am working part time at SCI on a mouse gene project where we compare hand bones of wild types to mutated mice. I'm also an undergrad in the computer science program and a math double major. CIBC:Project:NCMIR 0 1061 1350 2006-08-21T17:46:58Z Cates 4 wikitext text/x-wiki == Overview == == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay 1351 1350 2006-08-21T17:52:25Z Cates 4 wikitext text/x-wiki == Overview == == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Design == === Data Flow === [[Image:dataflow.png]] 1352 1351 2006-08-21T17:53:33Z Cates 4 wikitext text/x-wiki == Overview == == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Design == === Data Flow === [[Image:dataflow.png|400px]] 1353 1352 2006-08-21T17:55:31Z Cates 4 wikitext text/x-wiki == Overview == == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == == Schedule == == Design == === Data Flow === [[Image:dataflow.png|400px]] 1354 1353 2006-08-21T19:39:25Z Cates 4 wikitext text/x-wiki == Overview == == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Schedule == == Design == === Data Flow === [[Image:dataflow.png|400px]] 1355 1354 2006-08-21T19:39:53Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == == Schedule == == Design == === Data Flow === [[Image:dataflow.png|400px]] 1356 1355 2006-08-21T19:41:30Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.jpg|400px]] == Schedule == == Design == === Data Flow === [[Image:dataflow.png|400px]] 1357 1356 2006-08-21T19:41:56Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|400px]] == Schedule == == Design == === Data Flow === [[Image:dataflow.png|400px]] File:Dataflow.png 6 1062 3195 2006-08-21T17:51:11Z Cates 4 Data flow diagram for the NCRR segmentation application. wikitext text/x-wiki Data flow diagram for the NCRR segmentation application. File:Biopainter.png 6 1063 3196 2006-08-21T19:40:46Z Cates 4 wikitext text/x-wiki File:Screenshot08.png 6 1064 3197 2006-08-22T16:42:01Z Cates 4 wikitext text/x-wiki File:Screenshot10.png 6 1065 3198 2006-08-22T16:42:33Z Cates 4 wikitext text/x-wiki CIBC:Project:NCMIR 0 1061 1358 1357 2006-08-22T16:43:35Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|400px]] [[Image:Screenshot08.png|400px]] [[Image:Screenshot10.png|400px]] == Schedule == == Design == === Data Flow === [[Image:dataflow.png|400px]] 1360 1358 2006-08-22T16:57:22Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] 1361 1360 2006-08-29T17:55:00Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 12/31/2005 Tentative release date for general Alpha release (see release notes below) == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === 1362 1361 2006-08-29T18:14:11Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 12/31/2005 Tentative release date for general Alpha release (see release notes below) == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === 1363 1362 2006-08-29T18:21:37Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 10/??/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 12/31/2005 Tentative release date for general Alpha release (see release notes below) == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === 1364 1363 2006-08-29T18:22:23Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/??/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 12/31/2005 Tentative release date for general Alpha release (see release notes below) == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === 1387 1364 2006-08-29T18:24:19Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/??/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === 1388 1387 2006-09-13T19:14:58Z Cates 4 /* Schedule */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === 1390 1388 2006-09-13T19:18:35Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === 1432 1390 2006-09-13T19:28:05Z Cates 4 /* Limited NCMIR Release */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === CIBC:Workshops:WorkshopCRC06 0 1036 3172 1359 2006-08-23T00:03:53Z Erikj 2 /* Workshop Presentations */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focuses on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop will address these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants will consist of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop is not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] * [[Media:CRA-NIH_Workshop_Final_Registration_List_7-3-06.pdf|Final Registration List - CRA-NIH_Workshop_Final_Registration_List_7-3-06.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH-Workshop06-Johnson.pdf|Chris Johnson's Presentation (Large 61MB) - CRA-NIH-Workshop06-Johnson.pdf]] * Lee Hood's Presentation * [[Media:NIH_CRA_june06.pdf|Jill Mesirov's Presentation (Large 27MB) - NIH_CRA_june06.pdf]] * [[Media:CRA-NIH-Reed06.pdf|Dan Reed's Presentation (Large 15MB) - CRA-NIH-Reed06.pdf]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> Main Page 0 1 1371 1365 2006-09-06T22:13:51Z Jeroen 19 /* Meetings */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1374 1371 2006-09-12T14:19:41Z Mjc 35 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | The cibc svn branch]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1394 1374 2006-09-12T14:35:29Z Mjc 35 /* Development Info */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | The CIBC svn branch]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1395 1394 2006-10-02T15:23:26Z Mjc 35 /* Development Info */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | CIBC developer information]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1400 1395 2006-10-02T15:24:11Z Mjc 35 /* Development Info */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1401 1400 2006-10-10T16:16:57Z Mjc 35 /* Development Info */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:svn | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1430 1401 2006-10-10T16:17:24Z Mjc 35 /* Development Info */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Meetings:Management:Agenda 0 1066 1366 2006-09-06T22:31:15Z Jeroen 19 wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig Collaboration == === Recent Progress === - === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == == Developers == === Marty === a) Creating tools for inactive mesh editting b) freeing up time to do Release === Michael === a) MeshSmoother interface b) MeshQuality interface c) freeing up time to do Release === McKay === === Darby === 1367 1366 2006-09-06T22:33:38Z Jeroen 19 /* Marty */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig Collaboration == === Recent Progress === - === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == == Developers == === Marty === a) Creating tools for inactive mesh editing b) freeing up time to do Release === Michael === a) MeshSmoother interface b) MeshQuality interface c) freeing up time to do Release === McKay === === Darby === 1368 1367 2006-09-06T22:33:51Z Jeroen 19 /* Michael */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig Collaboration == === Recent Progress === - === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == == Developers == === Marty === a) Creating tools for inactive mesh editing b) freeing up time to do Release === Michael === a) MeshSmoother interface b) MeshQuality interface c) freeing up time to do Release === McKay === === Darby === 1369 1368 2006-09-08T19:31:14Z Jeroen 19 /* SCIRun Release */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig Collaboration == === Recent Progress === - === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) freeing up time to do Release === Michael === a) MeshSmoother interface b) MeshQuality interface c) freeing up time to do Release === McKay === === Darby === 1370 1369 2006-09-08T19:31:49Z Jeroen 19 /* Marty */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig Collaboration == === Recent Progress === - === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) MeshSmoother interface b) MeshQuality interface c) freeing up time to do Release === McKay === === Darby === 1380 1370 2006-09-08T19:33:04Z Jeroen 19 /* Developers */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig Collaboration == === Recent Progress === - === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) MeshSmoother interface b) MeshQuality interface c) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1381 1380 2006-09-12T22:36:49Z Jeroen 19 /* Michael */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig Collaboration == === Recent Progress === - === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1382 1381 2006-09-12T22:40:52Z Jeroen 19 /* Makeig Collaboration */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1383 1382 2006-09-12T22:42:17Z Jeroen 19 /* Makeig/Worrell Collaboration */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) Short term goal: 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1384 1383 2006-09-12T22:42:38Z Jeroen 19 /* Development to do for developers */ wikitext text/x-wiki = Continous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1385 1384 2006-09-12T22:44:16Z Jeroen 19 /* Continous Collaborator/Developer Agenda */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1386 1385 2006-09-13T18:14:42Z Cates 4 /* Ellisman Collaboration */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1389 1386 2006-09-13T18:24:22Z Cates 4 /* Capecchi Collaboration */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1396 1389 2006-09-13T19:21:14Z Cates 4 /* Capecchi Collaboration */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing b) Fixing SCIRun loading and saving of networks (bugs from switch to XML) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1397 1396 2006-10-04T15:38:50Z Jeroen 19 /* Developers */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. == SCIRun Release == * Marty will fix left over bugs from Loni * Michael will help Darby getting CMake to work == Developers == === Marty === a) Creating tools for inactive mesh editing === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1398 1397 2006-10-04T15:54:12Z Jeroen 19 /* SCIRun Release */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. == SCIRun Release == * Still waiting for new naming convention (We need this in place as well to merge in ModelCreation) * CMake conversion is going slower than planned (issues with dynamic compilation and packages) * Fixing filename conventions (proposal we allow the user to save filenames relative to the network and build in a converter from WIndows naming convention to Unix naming convention and backwards ) * We blocked all editing while running a network (Allowing editing and making networks run fine turns out to be a hugh task for the developers.) This way users should not be able to crash SCIRun this way * Currently configure is broken and CMAKE is not fully functional. * No progress yet on documentation * Do we want to merge thirdparty into the main branch. It would be nice if users just download CMAKE and then run ccmake . and thirdparty builds automatically. == Developers == === Marty === a) Creating tools for inactive mesh editing === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch 1402 1398 2006-10-04T17:22:04Z Jeroen 19 /* SCIRun Release */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. == SCIRun Release == * Still waiting for new naming convention (We need this in place as well to merge in ModelCreation) * CMake conversion is going slower than planned (issues with dynamic compilation and packages) * Fixing filename conventions (proposal we allow the user to save filenames relative to the network and build in a converter from WIndows naming convention to Unix naming convention and backwards ) * We blocked all editing while running a network (Allowing editing and making networks run fine turns out to be a hugh task for the developers.) This way users should not be able to crash SCIRun this way * Currently configure is broken and CMAKE is not fully functional. * No progress yet on documentation * Do we want to merge thirdparty into the main branch. It would be nice if users just download CMAKE and then run ccmake . and thirdparty builds automatically. * Latest compiler gcc 4.1 on OSX is this working? * Can we start to make the splash ppm for new version of SCIRun. == Developers == === Marty === a) Creating tools for inactive mesh editing === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch CIBC:Project:svn 0 1067 1372 2006-09-12T14:32:45Z Mjc 35 wikitext text/x-wiki CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html Useful information about the SCIRun repository and svn] but remember that the cibc code lives on its own branch, so when checking out code use the following links. For Thirdparty use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''my local path to thirdparty''} For Thirdparty use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update 1373 1372 2006-09-12T14:34:17Z Mjc 35 wikitext text/x-wiki CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html Useful information about the SCIRun repository and svn] but remember that the cibc code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''my local path to thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update 1375 1373 2006-09-12T14:34:55Z Mjc 35 wikitext text/x-wiki CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html Useful information about the SCIRun repository and svn] but remember that the cibc code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''my local path to thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update 1376 1375 2006-09-12T14:36:41Z Mjc 35 wikitext text/x-wiki CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. Useful information about the [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCIRun repository and svn] but remember that the cibc code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''my local path to thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update 1377 1376 2006-09-12T14:37:12Z Mjc 35 wikitext text/x-wiki CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. Useful information about the [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCIRun repository and svn] ,but remember that the CIBC code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''my local path to thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update 1378 1377 2006-09-12T14:37:27Z Mjc 35 wikitext text/x-wiki CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. Useful information about the [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCIRun repository and svn] ,but remember that the CIBC code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''my local path to thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update 1379 1378 2006-09-12T14:38:33Z Mjc 35 wikitext text/x-wiki CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. Useful information about the [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCIRun repository and svn] ,but remember that the CIBC code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''my local path to Thirdparty. ex. Thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update 1393 1379 2006-09-12T14:39:02Z Mjc 35 wikitext text/x-wiki CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. Useful information about the [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCIRun repository and svn] ,but remember that the CIBC code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''local path to my Thirdparty. ex. Thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update 1399 1393 2006-10-02T15:19:46Z Mjc 35 wikitext text/x-wiki == Checking out the CIBC svn branch == CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. Useful information about the [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCIRun repository and svn] ,but remember that the CIBC code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''local path to my Thirdparty. ex. Thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {''local path to your working tree''} svn update == Patching your thirdparty with ITK == Get the latest version of the InsightToolkit, untar it use the following cmake directives to configure it. The version at the time this was written is: 2.8.1 cd InsightToolkit-2.8.1/ cmake . -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE -DITK_USE_SYSTEM_PNG:BOOL=ON -DCMAKE_INSTALL_PREFIX:STRING='''''/path/to/your/thirdparty/directory/''''' make make install 2094 1399 2006-10-10T16:15:03Z Mjc 35 /* Checking out the CIBC svn branch */ wikitext text/x-wiki == Checking out the CIBC svn branch == CIBC development continues in our svn repository. Anyone can checkout and compile the code, access is required to commit code. Following the instructions will build you a local copy of the working trees, for the latest Thirdparty code, as well as the latest development code. This is the up to the minute changes, be aware that during various phases of development this code can become unstable, this is the bleeding edge. Useful information about the [http://code.sci.utah.edu/SCIRunAndSubversionFAQ.html SCIRun repository and svn] ,but remember that the CIBC code lives on its own branch, so when checking out code use the following links. To checkout the latest '''Thirdparty''' use this command: svn co https://code.sci.utah.edu/svn/Thirdparty {''local path to my Thirdparty. ex. Thirdparty''} To checkout the latest '''CIBC branch''' use this command: svn co https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src {''local path to my working tree. ex. SCIRun/src ''} Periodically you should update these working trees to get the latest changes merged into your local copy. cd {'''''local'''/'''path'''/'''to'''/'''your'''/'''working'''/'''tree'''''} svn update == Patching your thirdparty with ITK == Get the latest version of the InsightToolkit, untar it use the following cmake directives to configure it. The version at the time this was written is: 2.8.1 cd InsightToolkit-2.8.1/ cmake . -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE -DITK_USE_SYSTEM_PNG:BOOL=ON -DCMAKE_INSTALL_PREFIX:STRING='''''/path/to/your/thirdparty/directory/''''' make make install File:Figure1 PotentialGradient.png 6 1068 3204 2006-09-26T19:38:51Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki File:Figure1 CurrentDesity.png 6 1069 3205 2006-09-26T19:39:32Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki CIBC:Collab:Triedman 0 961 1392 1391 2006-09-26T19:44:29Z Matthew.jolley@tch.harvard.edu 23 /* Modeling Internal Defibrillators in Children */ wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Afront-body.png|135px]] [[Image:Figure1_CurrentDesity.png|150px]] [[Image:Figure1_PotentialGradient.png|128px]] ---- '''Department of Cardiology, Children's Hospital Boston''' Matthew Jolley, MD John Triedman, MD '''Scientific Computing and Imaging Institute''' Dana Brooks, PhD, NorthEastern University Robert MacLeod, PhD, Utah Jeroen Stinstra, PhD, Utah Joshua Cates, Utah McKay Davis, Utah David Weinstein, PhD, Utah '''Surgical Planning Laboratory''' Carl-Fredrik Westin, PhD Raul San-Jose Estepar, PhD Steve Pieper, PhD Gordon Kindlmann, PhD == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) 3095 1392 2006-09-26T19:46:47Z Matthew.jolley@tch.harvard.edu 23 /* Modeling Internal Defibrillators in Children */ wikitext text/x-wiki == Modeling Internal Defibrillators in Children == [[Image:Afront-body.png|205px]] [[Image:Figure1_CurrentDesity.png|230px]] [[Image:Figure1_PotentialGradient.png|230px]] ---- '''Department of Cardiology, Children's Hospital Boston''' Matthew Jolley, MD John Triedman, MD '''Scientific Computing and Imaging Institute''' Dana Brooks, PhD, NorthEastern University Robert MacLeod, PhD, Utah Jeroen Stinstra, PhD, Utah Joshua Cates, Utah McKay Davis, Utah David Weinstein, PhD, Utah '''Surgical Planning Laboratory''' Carl-Fredrik Westin, PhD Raul San-Jose Estepar, PhD Steve Pieper, PhD Gordon Kindlmann, PhD == Introduction == Placement of Implantable Cardiac Defibrillators(ICDs)is a unique and challenging problem for children due to the variety of shapes and sizes, ranging from neonate to adolescent. As a result, a variety of novel implant techniques have been employed. Although these have generally been successful inasmuch as they result in a clinically acceptable defibrillation threshold, nothing is known about the mechanisms by which this threshold is attained, the optimal geometries for defibrillation, and whether unsafe electric field strengths are a result of novel implant approaches. Finite element modeling has been shown in adult torso models to correlate well with clinical results. Our goal is to model defibrillation in child torso models to gain insight into this important problem. == Goals of Project == 1. Create 3D models of children based on CT and MRI datasets for modeling internal and external defibrillation in the SCIRun environment. The processes required address the larger question of how to take any CT or MRI DICOM dataset, segment it into various label maps, combine those label maps in a hierarchical manner, then import and utilize them in the SCIRun/BioPSE environment. This represents part of an expanding collaboration between [http://www.sci.utah.edu/ SCI] and [http://splweb.bwh.harvard.edu:8000/ SPL] to integrate open source tools to allow creation, visualization, and computational modeling of image based 3D models. 2. Create modules which allow insertion of electrode shapes into finite element models in SCIRun/BioPSE. This requires advanced local remeshing to remove "tissue" elements and insert the "electrode elements" for which electrical properties can be independently and adaptively set. 3. Utilize the above innovations to model the placement of internal defibrillator electrodes to maximize efficacy, minimize potential cardiac damage, and gain further insight into optimizing defibrillation in children of various sizes. == Overview of Current Pipeline and Subprojects by Topic== [[Segmentation of CT and MRI datasets using 3D Slicer]] [[Hierarchical Combination of Individual Volumes to Form a Combined Model]] [[Importing, Resampling, and Defining Axes of a Model in SCIRun]] [[Modeling and Visualization of Models in SCIRun/BioPSE]] --[[User:Matthew.jolley@tch.harvard.edu|MJ]] 16:53, 1 Feb 2006 (MST) CIBC:Meetings:Management:Agenda 0 1066 1425 1402 2006-10-10T19:19:22Z Jeroen 19 /* Continuous Collaborator/Developer Agenda */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. == SCIRun Release == * Still waiting for new naming convention (We need this in place as well to merge in ModelCreation) * CMake conversion is going slower than planned (issues with dynamic compilation and packages) * Fixing filename conventions (proposal we allow the user to save filenames relative to the network and build in a converter from WIndows naming convention to Unix naming convention and backwards ) * We blocked all editing while running a network (Allowing editing and making networks run fine turns out to be a hugh task for the developers.) This way users should not be able to crash SCIRun this way * Currently configure is broken and CMAKE is not fully functional. * No progress yet on documentation * Do we want to merge thirdparty into the main branch. It would be nice if users just download CMAKE and then run ccmake . and thirdparty builds automatically. * Latest compiler gcc 4.1 on OSX is this working? * Can we start to make the splash ppm for new version of SCIRun. == Developers == === Marty === a) Creating tools for inactive mesh editing === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Fixing module code to use send_output_handle / get_input_handle c) Fixing warnings in the code so we can use -Wall (better code practice) === McKay === a) Painter b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch ==Test== [[CIBC:Documentation:MatlabInterface:Interface:InterfaceToMatlab]] 1426 1425 2006-10-11T19:05:57Z Jeroen 19 /* Developers */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. == SCIRun Release == * Still waiting for new naming convention (We need this in place as well to merge in ModelCreation) * CMake conversion is going slower than planned (issues with dynamic compilation and packages) * Fixing filename conventions (proposal we allow the user to save filenames relative to the network and build in a converter from WIndows naming convention to Unix naming convention and backwards ) * We blocked all editing while running a network (Allowing editing and making networks run fine turns out to be a hugh task for the developers.) This way users should not be able to crash SCIRun this way * Currently configure is broken and CMAKE is not fully functional. * No progress yet on documentation * Do we want to merge thirdparty into the main branch. It would be nice if users just download CMAKE and then run ccmake . and thirdparty builds automatically. * Latest compiler gcc 4.1 on OSX is this working? * Can we start to make the splash ppm for new version of SCIRun. == Developers == === Marty === a) Creating tools for inactive mesh editing b) Working on the module renaming c) Will work on updating the Doxygen documentation (do we want this?) d) Will work on making small how to make a module tutorial (do we want this?) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Helping McKay to get Lexov working (we are already pst deadline) === McKay === a) Lexov b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch ==Test== [[CIBC:Documentation:MatlabInterface:Interface:InterfaceToMatlab]] 1427 1426 2006-10-11T19:11:23Z Jeroen 19 /* SCIRun Release */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) Write CIC paper == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. == SCIRun Release == * We have new naming convention ! * CMake conversion is going slower than planned (issues with dynamic compilation and packages), this is still not resolved. * We blocked all editing while running a network (Allowing editing and making networks run fine turns out to be a hugh task for the developers.) This way users should not be able to crash SCIRun this way. There are issues here we subnetworks, and callbacks (With subnetworks execution completion is not notified, we need to resolve this) * CMAKE is not fully functional, configure has been fixed (at least yesterday it was working). * No progress yet on documentation (Issue here which Wiki to use) * Latest compiler gcc 4.1 on OSX is this working. The 4.2 troubles seem be from a beta beta version of GCC. We are not following up on this until that version becomes a stable version. * Can we start to make the splash ppm for new version of SCIRun. * Do we postpone performance issues LinAlgebra to next release ? (Our current Matirx class are an absolute mess) == Developers == === Marty === a) Creating tools for inactive mesh editing b) Working on the module renaming c) Will work on updating the Doxygen documentation (do we want this?) d) Will work on making small how to make a module tutorial (do we want this?) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Helping McKay to get Lexov working (we are already pst deadline) === McKay === a) Lexov b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch ==Test== [[CIBC:Documentation:MatlabInterface:Interface:InterfaceToMatlab]] 1434 1427 2006-10-11T19:11:54Z Jeroen 19 /* Short term goal */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) CIC paper has been written and has been accepted == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh preparing talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. == SCIRun Release == * We have new naming convention ! * CMake conversion is going slower than planned (issues with dynamic compilation and packages), this is still not resolved. * We blocked all editing while running a network (Allowing editing and making networks run fine turns out to be a hugh task for the developers.) This way users should not be able to crash SCIRun this way. There are issues here we subnetworks, and callbacks (With subnetworks execution completion is not notified, we need to resolve this) * CMAKE is not fully functional, configure has been fixed (at least yesterday it was working). * No progress yet on documentation (Issue here which Wiki to use) * Latest compiler gcc 4.1 on OSX is this working. The 4.2 troubles seem be from a beta beta version of GCC. We are not following up on this until that version becomes a stable version. * Can we start to make the splash ppm for new version of SCIRun. * Do we postpone performance issues LinAlgebra to next release ? (Our current Matirx class are an absolute mess) == Developers == === Marty === a) Creating tools for inactive mesh editing b) Working on the module renaming c) Will work on updating the Doxygen documentation (do we want this?) d) Will work on making small how to make a module tutorial (do we want this?) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Helping McKay to get Lexov working (we are already pst deadline) === McKay === a) Lexov b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch ==Test== [[CIBC:Documentation:MatlabInterface:Interface:InterfaceToMatlab]] 1435 1434 2006-10-17T21:17:40Z Cates 4 /* Capecchi Collaboration */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) CIC paper has been written and has been accepted == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh gave talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. 10/01/06 - Particle system code nearing completion. Zach, Lance recruiting more segmenters. Zach preparing poster presenting preliminary work. == SCIRun Release == * We have new naming convention ! * CMake conversion is going slower than planned (issues with dynamic compilation and packages), this is still not resolved. * We blocked all editing while running a network (Allowing editing and making networks run fine turns out to be a hugh task for the developers.) This way users should not be able to crash SCIRun this way. There are issues here we subnetworks, and callbacks (With subnetworks execution completion is not notified, we need to resolve this) * CMAKE is not fully functional, configure has been fixed (at least yesterday it was working). * No progress yet on documentation (Issue here which Wiki to use) * Latest compiler gcc 4.1 on OSX is this working. The 4.2 troubles seem be from a beta beta version of GCC. We are not following up on this until that version becomes a stable version. * Can we start to make the splash ppm for new version of SCIRun. * Do we postpone performance issues LinAlgebra to next release ? (Our current Matirx class are an absolute mess) == Developers == === Marty === a) Creating tools for inactive mesh editing b) Working on the module renaming c) Will work on updating the Doxygen documentation (do we want this?) d) Will work on making small how to make a module tutorial (do we want this?) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Helping McKay to get Lexov working (we are already pst deadline) === McKay === a) Lexov b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch ==Test== [[CIBC:Documentation:MatlabInterface:Interface:InterfaceToMatlab]] 3199 1435 2006-10-17T21:18:03Z Cates 4 /* Capecchi Collaboration */ wikitext text/x-wiki = Continuous Collaborator/Developer Agenda = Goal of this page is to keep an on going list of projects needs, and accomplishments for each project and a short update of what the developers are up to. == Triedman Collaboration == ===Recent progress=== a) We have a hexahedral approach working and we have surfaces for two of the segmented models. b) We have a list of locations to put the electrodes and scans of electrode cans and wires (all specifications) c) We have thresholds and voltage specifications. d) We have code to do intersections in surfaces ===To do=== a) Test hexahedral approach, test different densities of meshes, test different ways of averaging conductivities. b) Test efficiency in estimating impedance (one of the few measures we have we can use for validating the models, the ICD actually measures this :) ) c) Build electrode models from scans (probably manually because it is a 2D scan of 3D object and we need to add a depth) d) Test different refinements around electrodes e) Test whether insertion of electrode cans (closed surfaces) in surface models work. f) Test effectiveness of mesh smoothing on results. g) Generate a few more surface models with different parameters. h) Use more elements in models (large dependency on element size in first tests) and hence fix memory management ===Collaborator=== a) Generate a few more segmented models and help with conversion mesh effectiveness study. ===Development to do for developers=== a) Fix problems intersection code b) Expose more options in mesh smoother (currently no control over process) c) Render a decent interface to TetGen d) Fix MeshQuality module both GUI as code (crashes often and only displays data in shell) e) Adjust intersection code to generate line electrodes at intersection of two planes. f) FIX PROBLEMS IN SCIRUN SCHEDULER/INTERFACE g) FIX MEMORY ADDRESS SPACE, BY STREAMING DATAFLOW TO DISK h) Merge Jason's code (mesh smoother) into the branch ===Short term goals=== a) Upgrade modules to use consistent gets and sends for dataflow data b) Create a system to cache data on disk c) Fix interwsection doe and surface smoother == Henriquez Collaboration == === Recent Progress === a) Fixed most bugs in the modules that generate the model b) Add support for mapping electrodes in the model (we were getting data files that are too big > 100Gb) and hence we only will record at certain locations in high detail. c) Small models seem to be produced OK. d) Upgraded CardioWave code to record highly detailed electrodes === To do === a) Do simulations and write paper for CIC b) Fix the bugs in latest version of CardioWave === For collaborative project === a) Time dependent electrodes in CardioWave (SCIRun side is done) === Collaborator === a) Work on paper === Development to do for developers === a) FIX SCIRUN GUI/SCHEDULER (So collaborator can use SCIRun) b) Wrap modules so they are exposed in SCIRun Core (We currently though have a working set) === Short term goal === a) CIC paper has been written and has been accepted == Makeig/Worrell Collaboration == === Recent Progress === a) We had a meeting with Greg Worrell and Scott Makeig: 1) They will send us CT data (better for segmentation skull) 2) We will make surface meshes using afront 3) We will try to minimize number of elements, they have a BEM guy starting to work in Scott's lab soon 4) We will try to build a Tet model out of the surfaces 5) We will look at mesh quality => Waiting for data, need to page him before leaving to Spain for CIC (Jeroen) === To do === a) Figure out how to segment their data and get painter application working b) Surface Remesher (LONG TERM, will take months to complete) c) Fix the current insertion code (Dana has some requirements here as well, hence we want to properly integrate over surfaces etc, hence our developers will be lost at this one , as it requires a lot of functionality that is already in the basis classes) d) Add general dipole model for each type of mesh. === Development to do for developers === a) Get the painter application working and start playing with data and depending on that implement segmentation models. (I need input here, as I am not an expert in segmentation) == Short term goal: == 1) Get data from Greg 2) Get data to McKay for 1st try at segmenting skull using CT data == Ellisman Collaboration == Please see [[CIBC:Project:NCMIR]] == Capecchi Collaboration == Overview: We are generating data for 2 papers. The first will be a comparison with the original bone length study from the Capecchi lab using our semi-automated techniques. The second paper will be a shape study using our shape tools. We have several students working on the necessary segmentations. Josh is working on shape analysis library and research. Current Hox D11 work * Zach, Lance, and Toly are currently working on bone segmentations. * Zach is breeding new mutants: we need approx 3-4 more mutant scans and 3-4 more wild type scans for a total of 17 each. This will replicate the number used in the original, manual length measurement paper. Estimated we can scan the new mutants in December. * Toly has length measurement software up and running and processing segmentations as we get them. * Preliminary results show good agreement in relative bone length of mutant vs. wild. * Targeting first publication for early 2007: this paper will be a bone length study comparing * May use this project to beta test the NCMIR segmentation app when manual features ready. Current Shape Analysis work * Josh is working on a particle system library of code for use in shape analysis and surface visualization. * Josh/Ross/Tom pursuing research in new methods for shape analysis. Josh gave talk for Mathematical Foundations of Computational Anatomy Workshop at MICCAI 2006. Notes 9/11/06 - 9/29/06 Josh cranks on particle system code & MICCAI Talk. Otherwise, continue breeding and segmenting. Possible wild-type scanning work. 10/01/06 - Particle system code nearing completion. Zach, Lance recruiting more segmenters. Zach preparing poster presenting preliminary work. == SCIRun Release == * We have new naming convention ! * CMake conversion is going slower than planned (issues with dynamic compilation and packages), this is still not resolved. * We blocked all editing while running a network (Allowing editing and making networks run fine turns out to be a hugh task for the developers.) This way users should not be able to crash SCIRun this way. There are issues here we subnetworks, and callbacks (With subnetworks execution completion is not notified, we need to resolve this) * CMAKE is not fully functional, configure has been fixed (at least yesterday it was working). * No progress yet on documentation (Issue here which Wiki to use) * Latest compiler gcc 4.1 on OSX is this working. The 4.2 troubles seem be from a beta beta version of GCC. We are not following up on this until that version becomes a stable version. * Can we start to make the splash ppm for new version of SCIRun. * Do we postpone performance issues LinAlgebra to next release ? (Our current Matirx class are an absolute mess) == Developers == === Marty === a) Creating tools for inactive mesh editing b) Working on the module renaming c) Will work on updating the Doxygen documentation (do we want this?) d) Will work on making small how to make a module tutorial (do we want this?) === Michael === a) Helping Darby with CMake branch, (this needs to be done before we can do the big reorganization) b) Helping McKay to get Lexov working (we are already pst deadline) === McKay === a) Lexov b) CMake switch, to coordinate things needed for release Painter under CMake === Darby === a) CMake switch ==Test== [[CIBC:Documentation:MatlabInterface:Interface:InterfaceToMatlab]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab 0 1071 1403 2006-10-10T19:29:33Z Jeroen 19 wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- ==== Module Summary ==== ==== Module Description ==== 1404 1403 2006-10-10T19:30:43Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Module Summary === === Module Description === === Module FAQ === 1405 1404 2006-10-10T19:32:30Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Module Summary === === Module Description === ---- === Module FAQ === ---- === Known Bugs === 1406 1405 2006-10-10T19:36:06Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Module Summary === === Module Description === ---- === Module FAQ === ---- === Known Bugs === ---- === Recent Changes === 1407 1406 2006-10-10T19:36:33Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Module Summary === === Module Description === ---- === Module FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- 1408 1407 2006-10-10T19:41:27Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- 1409 1408 2006-10-10T19:45:10Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab * DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. * PASSWORD: A simple password, as a first line of defense. Better ways will follow. * RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. * MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- 1410 1409 2006-10-10T19:46:54Z Jeroen 19 /* Configuration File */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :PASSWORD: A simple password, as a first line of defense. Better ways will follow. :RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- 1411 1410 2006-10-10T19:47:39Z Jeroen 19 /* Configuration File */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :PASSWORD: A simple password, as a first line of defense. Better ways will follow. :RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- 1412 1411 2006-10-10T19:48:39Z Jeroen 19 /* Configuration File */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- 1413 1412 2006-10-10T19:51:16Z Jeroen 19 /* Description */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- 1414 1413 2006-10-10T19:54:27Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1415 1414 2006-10-10T20:06:25Z Jeroen 19 /* Description */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1416 1415 2006-10-10T20:08:00Z Jeroen 19 /* Recent Changes */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ---- === Known Bugs === ---- === Recent Changes === This module recently was extended to have input and output ports for strings as well. --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1417 1416 2006-10-10T20:11:35Z Jeroen 19 /* FAQ */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matkab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === This module recently was extended to have input and output ports for strings as well. --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1418 1417 2006-10-10T20:11:58Z Jeroen 19 /* FAQ */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matkab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === This module recently was extended to have input and output ports for strings as well. --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1419 1418 2006-10-10T20:14:53Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Version: 1.25.4 : Last modified: 10 October 2006 : Authors: Jeroen Stinstra : Status: Present in latest version ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matkab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === This module recently was extended to have input and output ports for strings as well. --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1420 1419 2006-10-10T20:15:21Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Authors: Jeroen Stinstra : Status: Present in latest version ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matkab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === This module recently was extended to have input and output ports for strings as well. --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1421 1420 2006-10-10T20:16:12Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matkab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === This module recently was extended to have input and output ports for strings as well. --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1422 1421 2006-10-10T20:16:52Z Jeroen 19 /* Functions in Matlab Code */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matlab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === This module recently was extended to have input and output ports for strings as well. --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1423 1422 2006-10-10T20:18:26Z Jeroen 19 /* Recent Changes */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matlab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === This module recently was extended to have input and output ports for strings as well --jeroen Support for fields with no data was fixed -- jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1424 1423 2006-10-10T20:23:30Z Jeroen 19 /* Recent Changes */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matlab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen This module recently was extended to have multiple input and output ports for strings as well --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1438 1424 2006-10-10T20:38:28Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version : Version: 1.25.0 and later ---- === Summary === Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ---- === Description === ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matlab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen This module recently was extended to have multiple input and output ports for strings as well --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- File:InterfaceToMatlab GUI1.png 6 1072 3208 2006-10-10T20:00:21Z Jeroen 19 wikitext text/x-wiki File:InterfaceToMatlabGUI2.png 6 1073 3209 2006-10-10T20:00:44Z Jeroen 19 wikitext text/x-wiki File:InterfaceToMatlabGUI3.png 6 1074 3210 2006-10-10T20:00:54Z Jeroen 19 wikitext text/x-wiki File:InterfaceToMatlabGUI4.png 6 1075 3211 2006-10-10T20:01:07Z Jeroen 19 wikitext text/x-wiki CIBC:Project:Matlab 0 1076 1428 2006-10-11T20:39:14Z Dbrayford 43 wikitext text/x-wiki 1)How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, ../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface” If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. Figure 4 2)How to execute Matlab code within SCIRun? 3)How to automatically load a Matlab file within the Matlab interface module? 4)How to pass a function and parameters to the Matlab interface Module within SCIRun? 5)Dynamically modifying function parameters to a Matlab program within SCIRun? 1429 1428 2006-10-11T22:43:41Z Dbrayford 43 wikitext text/x-wiki 1)How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, ../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface” If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2)How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun Figure 5 3)How to automatically load a Matlab file within the Matlab interface module? 4)How to pass a function and parameters to the Matlab interface Module within SCIRun? 5)Dynamically modifying function parameters to a Matlab program within SCIRun? 1436 1429 2006-10-11T23:07:25Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? 5) Dynamically modifying function parameters to a Matlab program within SCIRun? 1437 1436 2006-10-17T22:03:24Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 8 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of eval. 5) Dynamically modifying function parameters to a Matlab program within SCIRun? File:Matlab01.png 6 1077 3213 2006-10-11T20:41:49Z Dbrayford 43 wikitext text/x-wiki File:Matlab02.png 6 1078 3214 2006-10-11T20:42:35Z Dbrayford 43 wikitext text/x-wiki File:Matlab03.png 6 1079 3215 2006-10-11T20:45:46Z Dbrayford 43 wikitext text/x-wiki File:MatlabDataReader01.png 6 1080 3216 2006-10-11T20:47:02Z Dbrayford 43 wikitext text/x-wiki File:MatlabReader02.png 6 1081 3217 2006-10-11T22:50:59Z Dbrayford 43 wikitext text/x-wiki Main Page 0 1 1431 1430 2006-10-16T22:42:53Z Erikj 2 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. <math>\sqrt{2}</math> Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1443 1431 2006-10-16T22:43:09Z Erikj 2 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] File:Autoload01.png 6 1082 3218 2006-10-17T18:43:23Z Dbrayford 43 wikitext text/x-wiki CIBC:Project:NCMIR 0 1061 1433 1432 2006-10-17T19:14:27Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === 1580 1433 2006-10-17T19:14:49Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === File:Autoload02.png 6 1083 3219 2006-10-17T19:26:36Z Dbrayford 43 wikitext text/x-wiki File:Parameter pass01.png 6 1084 3220 2006-10-17T20:46:42Z Dbrayford 43 wikitext text/x-wiki File:Parameter pass02.png 6 1085 3222 2006-10-17T21:58:33Z Dbrayford 43 wikitext text/x-wiki CIBC:Project:Matlab 0 1076 1644 1437 2006-10-17T22:56:28Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) Dynamically modifying function parameters to a Matlab program within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. CIBC:Documentation:MatlabInterface:Interface:InterfaceToMatlab 0 1086 3223 2006-10-19T19:05:31Z Jeroen 19 CIBC:Documentation:MatlabInterface:Interface:InterfaceToMatlab moved to CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceToMatlab wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceToMatlab]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab 0 1071 1439 1438 2006-10-19T19:16:23Z Jeroen 19 wikitext text/x-wiki == '''InterfaceToMatlab''' == ; Module Information : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version : Version: 1.25.0 and later ---- === Description === ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matlab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen This module recently was extended to have multiple input and output ports for strings as well --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1440 1439 2006-10-19T19:18:08Z Jeroen 19 /* '''InterfaceToMatlab''' */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ===Information=== : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version : Version: 1.25.0 and later ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === FAQ === ====Functions in Matlab Code ==== The module at this point does not support any support to define matlab functions it self. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen This module recently was extended to have multiple input and output ports for strings as well --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1441 1440 2006-10-19T19:21:37Z Jeroen 19 /* FAQ */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ===Information=== : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version : Version: 1.25.0 and later ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen This module recently was extended to have multiple input and output ports for strings as well --jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1442 1441 2006-10-19T19:23:56Z Jeroen 19 /* Recent Changes */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ===Information=== : Package: MatlabInterface : Catagory: Interface : Last modified: 10 October 2006 : Author(s): Jeroen Stinstra : Status: Present in latest version : Version: 1.25.0 and later ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1455 1442 2006-10-19T19:30:38Z Jeroen 19 /* Information */ wikitext text/x-wiki == '''InterfaceToMatlab''' == ===Information=== : Package: MatlabInterface : Catagory: Interface : Last modified: 19 October 2006 : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceToMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1456 1455 2006-10-19T21:33:04Z Jeroen 19 wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: MatlabInterface : Catagory: Interface : Last modified: 19 October 2006 : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- 1484 1456 2006-10-19T21:34:10Z Jeroen 19 /* Information */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: 19 October 2006 : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- Main Page 0 1 1462 1443 2006-10-19T19:41:11Z Jeroen 19 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Documentation == [[CIBC:Documentation|Documentation Portal]] Please select Documentation Portal to access the on line documentation of the SCIRun/BioPSE software. 1481 1462 2006-10-19T21:42:01Z Jeroen 19 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Documentation:SCIRun 0 1087 1444 2006-10-19T20:21:15Z Jeroen 19 wikitext text/x-wiki = '''Documentation''' = '''NOTE DOCUMENTATION IS STILL UNDER CONSTRUCTION''' '''AND MAY CHANGE AT ANY MOMENT IN TIME''' === SCIRun/BioPSE Documentation === '''General Documentation''' ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun '''User Documentation''' ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module '''Developer Documentation''' ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code === BioPSE PowerApps Documentation === ---- 1445 1444 2006-10-19T20:22:22Z Jeroen 19 /* '''Documentation''' */ wikitext text/x-wiki = '''Documentation''' = '''NOTE DOCUMENTATION IS STILL UNDER CONSTRUCTION''' '''AND MAY CHANGE AT ANY MOMENT IN TIME''' === '''SCIRun/BioPSE Documentation''' === ---- '''General Documentation''' ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- '''User Documentation''' ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- '''Developer Documentation''' ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code === '''BioPSE PowerApps Documentation''' === ---- 1446 1445 2006-10-19T20:22:47Z Jeroen 19 wikitext text/x-wiki == '''Documentation''' == '''NOTE DOCUMENTATION IS STILL UNDER CONSTRUCTION''' '''AND MAY CHANGE AT ANY MOMENT IN TIME''' === '''SCIRun/BioPSE Documentation''' === ---- '''General Documentation''' ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- '''User Documentation''' ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- '''Developer Documentation''' ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code === '''BioPSE PowerApps Documentation''' === ---- 1447 1446 2006-10-19T20:23:49Z Jeroen 19 wikitext text/x-wiki = '''Documentation''' = '''NOTE: THIS DOCUMENTATION PAGE IS STILL UNDER CONSTRUCTION''' '''INFORMATION ON THIS PAGE IS NOT YET UP TO DATE AND MAY CHANGE ANY MOMENT''' === '''SCIRun/BioPSE Documentation''' === ---- '''General Documentation''' ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- '''User Documentation''' ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- '''Developer Documentation''' ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code === '''BioPSE PowerApps Documentation''' === ---- 1448 1447 2006-10-19T20:24:03Z Jeroen 19 /* '''Documentation''' */ wikitext text/x-wiki = '''Documentation''' = '''NOTE: THIS DOCUMENTATION PAGE IS STILL UNDER CONSTRUCTION''' '''INFORMATION ON THIS PAGE IS NOT YET UP TO DATE AND MAY CHANGE ANY MOMENT''' === '''SCIRun/BioPSE Documentation''' === ---- '''General Documentation''' ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- '''User Documentation''' ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- '''Developer Documentation''' ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code === '''BioPSE PowerApps Documentation''' === ---- 1449 1448 2006-10-19T20:38:26Z Jeroen 19 /* '''SCIRun/BioPSE Documentation''' */ wikitext text/x-wiki = '''Documentation''' = '''NOTE: THIS DOCUMENTATION PAGE IS STILL UNDER CONSTRUCTION''' '''INFORMATION ON THIS PAGE IS NOT YET UP TO DATE AND MAY CHANGE ANY MOMENT''' === '''SCIRun/BioPSE V 1.26 Documentation''' === ---- '''General Documentation''' ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- '''User Documentation''' ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- '''Developer Documentation''' ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code === '''BioPSE PowerApps Documentation''' === ---- 1450 1449 2006-10-19T20:39:14Z Jeroen 19 /* '''Documentation''' */ wikitext text/x-wiki ='''Documentation'''= '''NOTE: THIS DOCUMENTATION PAGE IS STILL UNDER CONSTRUCTION''' '''INFORMATION ON THIS PAGE IS NOT YET UP TO DATE AND MAY CHANGE ANY MOMENT''' ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- '''General Documentation''' ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- '''User Documentation''' ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- '''Developer Documentation''' ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ==='''BioPSE PowerApps Documentation'''=== ---- 1451 1450 2006-10-19T20:40:19Z Jeroen 19 wikitext text/x-wiki ='''Documentation'''= '''NOTE: THIS DOCUMENTATION PAGE IS STILL UNDER CONSTRUCTION''' '''INFORMATION ON THIS PAGE IS NOT YET UP TO DATE AND MAY CHANGE ANY MOMENT''' ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ==='''BioPSE PowerApps Documentation'''=== ---- 1452 1451 2006-10-19T20:40:37Z Jeroen 19 /* '''Documentation''' */ wikitext text/x-wiki =='''Documentation'''== '''NOTE: THIS DOCUMENTATION PAGE IS STILL UNDER CONSTRUCTION''' '''INFORMATION ON THIS PAGE IS NOT YET UP TO DATE AND MAY CHANGE ANY MOMENT''' ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ==='''BioPSE PowerApps Documentation'''=== ---- 1463 1452 2006-10-19T20:41:07Z Jeroen 19 /* '''BioPSE PowerApps Documentation''' */ wikitext text/x-wiki =='''Documentation'''== '''NOTE: THIS DOCUMENTATION PAGE IS STILL UNDER CONSTRUCTION''' '''INFORMATION ON THIS PAGE IS NOT YET UP TO DATE AND MAY CHANGE ANY MOMENT''' ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ==='''BioPSE PowerApps V1.26 Documentation'''=== ---- 1464 1463 2006-10-19T21:42:22Z Jeroen 19 /* '''Documentation''' */ wikitext text/x-wiki =='''Documentation'''== ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ==='''BioPSE PowerApps V1.26 Documentation'''=== ---- 1465 1464 2006-10-19T21:42:44Z Jeroen 19 /* '''Documentation''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ==='''BioPSE PowerApps V1.26 Documentation'''=== ---- 1469 1465 2006-10-19T21:44:57Z Jeroen 19 /* '''BioPSE PowerApps V1.26 Documentation''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code 1470 1469 2006-10-19T21:47:28Z Jeroen 19 /* '''SCIRun/BioPSE V 1.26 Documentation''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''=== 1471 1470 2006-10-19T21:47:52Z Jeroen 19 /* ='''BioPSE PowerApps''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ==='''BioPSE PowerApps'''=== 1472 1471 2006-10-19T21:48:03Z Jeroen 19 /* '''BioPSE PowerApps''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE V 1.26 Documentation'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== 1473 1472 2006-10-19T21:48:27Z Jeroen 19 /* '''SCIRun/BioPSE V 1.26 Documentation''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE Documentation Version 1.26'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== 1475 1473 2006-10-19T21:49:05Z Jeroen 19 /* '''SCIRun/BioPSE Documentation Version 1.26''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE Documentation Version 1.26'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== ---- [[CIBC:Documentation|Go back to Documentation]] 1476 1475 2006-10-19T21:58:09Z Jeroen 19 /* '''SCIRun/BioPSE Documentation Version 1.26''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE and PowerApps Version 1.26'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== ---- [[CIBC:Documentation|Go back to Documentation]] 1513 1476 2006-10-19T21:58:32Z Jeroen 19 /* '''General Documentation''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE and PowerApps Version 1.26'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes Version 1.26]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== ---- [[CIBC:Documentation|Go back to Documentation]] CIBC:Documentation:SCIRun:ReleaseNotes:3.0 0 1088 1459 2006-10-19T20:36:40Z Jeroen 19 wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 1.26.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === Bug fixes === === Supported systems === * Added support for Intel based Macintosh machines * Discontinued support for OS X 10.3 or lower === New features === 1460 1459 2006-10-19T21:38:03Z Jeroen 19 /* Release Notes for SCIRun/BioPSE Version 1.26.0 */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 1.26.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === Bug fixes === === Supported systems === * Added support for Intel based Macintosh machines * Discontinued support for OS X 10.3 or lower === New features === ---- [[CIBC::Documentation|Go back to Documentation]] 1466 1460 2006-10-19T21:38:24Z Jeroen 19 /* New features */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 1.26.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === Bug fixes === === Supported systems === * Added support for Intel based Macintosh machines * Discontinued support for OS X 10.3 or lower === New features === ---- [[CIBC:Documentation|Go back to Documentation]] 1477 1466 2006-10-19T21:45:38Z Jeroen 19 /* New features */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 1.26.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === Bug fixes === === Supported systems === * Added support for Intel based Macintosh machines * Discontinued support for OS X 10.3 or lower === New features === ---- [[CIBC:Documentation:SCIRun|Go back to SCIRun Documentation]] 1478 1477 2006-10-20T01:30:12Z Jeroen 19 wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 1.26.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. === Bug fixes === === Supported systems === * Added support for Intel based Macintosh machines * Discontinued support for OS X 10.3 or lower ---- [[CIBC:Documentation:SCIRun|Go back to SCIRun Documentation]] 1479 1478 2006-10-20T01:40:33Z Jeroen 19 wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 1.26.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. === Bug fixes === ---- [[CIBC:Documentation:SCIRun|Go back to SCIRun Documentation]] 1480 1479 2006-10-20T01:45:34Z Jeroen 19 wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 1.26.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. ===Modules=== * All modules have been given a new name. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- [[CIBC:Documentation:SCIRun|Go back to SCIRun Documentation]] CIBC:Documentation:SCIRun:Reference 0 1089 1453 2006-10-19T20:56:16Z Jeroen 19 wikitext text/x-wiki =='''SCIRun Module Descriptions'''== '''SCIRun''' ;[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun Modules]] :Reference documentation on all modules inside the Core of SCIRun '''Packages (stable)''' ;[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE Modules]] :This extension package has modules for doing bioelectic field calculations ;[[CIBC:Documentation:SCIRun:Reference:Insight|Insight Modules]] :This extension package contains an interface to the Insight ToolKit ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface Modules]] :This extension package contains an interface to Matlab ;[[CIBC:Documentation:SCIRun:Reference:Teem|Teem Modules]] :This extension package contains an interface to the Teem library '''Packages (under development)''' ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CarioWaveInterface Modules]] :This extension package contains an interface to the CardioWave simulator ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation Modules]] :A sandbox containing modeling and meshing tools, that ultimately will be integrated in the core of SCIRun 1458 1453 2006-10-19T21:12:50Z Jeroen 19 /* '''SCIRun Module Descriptions''' */ wikitext text/x-wiki =='''Module Reference'''== '''SCIRun''' ;[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun Modules]] :Reference documentation on all modules inside the Core of SCIRun '''Packages (stable)''' ;[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE Modules]] :This extension package has modules for doing bioelectic field calculations ;[[CIBC:Documentation:SCIRun:Reference:Insight|Insight Modules]] :This extension package contains an interface to the Insight ToolKit ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface Modules]] :This extension package contains an interface to Matlab ;[[CIBC:Documentation:SCIRun:Reference:Teem|Teem Modules]] :This extension package contains an interface to the Teem library '''Packages (under development)''' ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CarioWaveInterface Modules]] :This extension package contains an interface to the CardioWave simulator ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation Modules]] :A sandbox containing modeling and meshing tools, that ultimately will be integrated in the core of SCIRun 1461 1458 2006-10-19T21:36:57Z Jeroen 19 wikitext text/x-wiki =='''Module Reference'''== '''SCIRun''' ;[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun Modules]] :Reference documentation on all modules inside the Core of SCIRun '''Packages (stable)''' ;[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE Modules]] :This extension package has modules for doing bioelectic field calculations ;[[CIBC:Documentation:SCIRun:Reference:Insight|Insight Modules]] :This extension package contains an interface to the Insight ToolKit ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface Modules]] :This extension package contains an interface to Matlab ;[[CIBC:Documentation:SCIRun:Reference:Teem|Teem Modules]] :This extension package contains an interface to the Teem library '''Packages (under development)''' ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CarioWaveInterface Modules]] :This extension package contains an interface to the CardioWave simulator ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation Modules]] :A sandbox containing modeling and meshing tools, that ultimately will be integrated in the core of SCIRun ---- [[CIBC:Documentation|Go back to documentation]] 1467 1461 2006-10-19T21:40:13Z Jeroen 19 /* '''Module Reference''' */ wikitext text/x-wiki =='''Module Reference'''== '''SCIRun''' ;[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun Modules]] :Reference documentation on all modules inside the Core of SCIRun '''Packages (stable)''' ;[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE Modules]] :This extension package has modules for doing bioelectic field calculations ;[[CIBC:Documentation:SCIRun:Reference:Insight|Insight Modules]] :This extension package contains an interface to the Insight ToolKit ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface Modules]] :This extension package contains an interface to Matlab ;[[CIBC:Documentation:SCIRun:Reference:Teem|Teem Modules]] :This extension package contains an interface to the Teem library '''Packages (under development)''' ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CarioWaveInterface Modules]] :This extension package contains an interface to the CardioWave simulator ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation Modules]] :A sandbox containing modeling and meshing tools, that ultimately will be integrated in the core of SCIRun ---- [[CIBC:Documentation|Go back to Documentation]] 1468 1467 2006-10-19T21:46:09Z Jeroen 19 /* '''Module Reference''' */ wikitext text/x-wiki =='''Module Reference'''== '''SCIRun''' ;[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun Modules]] :Reference documentation on all modules inside the Core of SCIRun '''Packages (stable)''' ;[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE Modules]] :This extension package has modules for doing bioelectic field calculations ;[[CIBC:Documentation:SCIRun:Reference:Insight|Insight Modules]] :This extension package contains an interface to the Insight ToolKit ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface Modules]] :This extension package contains an interface to Matlab ;[[CIBC:Documentation:SCIRun:Reference:Teem|Teem Modules]] :This extension package contains an interface to the Teem library '''Packages (under development)''' ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CarioWaveInterface Modules]] :This extension package contains an interface to the CardioWave simulator ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation Modules]] :A sandbox containing modeling and meshing tools, that ultimately will be integrated in the core of SCIRun ---- [[CIBC:Documentation:SCIRun|Go back to Documentation]] 1518 1468 2006-10-19T21:46:25Z Jeroen 19 /* '''Module Reference''' */ wikitext text/x-wiki =='''Module Reference'''== '''SCIRun''' ;[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun Modules]] :Reference documentation on all modules inside the Core of SCIRun '''Packages (stable)''' ;[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE Modules]] :This extension package has modules for doing bioelectic field calculations ;[[CIBC:Documentation:SCIRun:Reference:Insight|Insight Modules]] :This extension package contains an interface to the Insight ToolKit ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface Modules]] :This extension package contains an interface to Matlab ;[[CIBC:Documentation:SCIRun:Reference:Teem|Teem Modules]] :This extension package contains an interface to the Teem library '''Packages (under development)''' ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CarioWaveInterface Modules]] :This extension package contains an interface to the CardioWave simulator ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation Modules]] :A sandbox containing modeling and meshing tools, that ultimately will be integrated in the core of SCIRun ---- [[CIBC:Documentation:SCIRun|Go back to SCIRun Documentation]] CIBC:Documentation:SCIRun:Reference:MatlabInterface 0 1090 1454 2006-10-19T21:31:21Z Jeroen 19 wikitext text/x-wiki =='''MatlabInterface Reference'''== ==='''Package Description'''=== This package adds an interface to Matlab to SCIRun. The package contains an interface, which allows for small Matlab scripts to be inserted into SCIRun's dataflow networks and a converter to import and export SCIRun dataflow objects as Matlab files. ==='''Module Reference'''=== ===='''Interface'''==== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlab|InterfaceWithMatlab]] :Module for interactively communicating with Matlab ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlabViaBundles|InterfaceWithMatlabViaBundles]] :Module for interactively communicating with Matlab using Bundles ===='''DataIO'''==== 1457 1454 2006-10-19T21:31:38Z Jeroen 19 wikitext text/x-wiki =='''MatlabInterface Reference'''== ==='''Package Description'''=== This package adds an interface to Matlab to SCIRun. The package contains an interface, which allows for small Matlab scripts to be inserted into SCIRun's dataflow networks and a converter to import and export SCIRun dataflow objects as Matlab files. ---- ==='''Module Reference'''=== ===='''Interface'''==== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlab|InterfaceWithMatlab]] :Module for interactively communicating with Matlab ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlabViaBundles|InterfaceWithMatlabViaBundles]] :Module for interactively communicating with Matlab using Bundles ===='''DataIO'''==== 1486 1457 2006-10-19T21:35:59Z Jeroen 19 wikitext text/x-wiki =='''MatlabInterface Reference'''== ==='''Package Description'''=== This package adds an interface to Matlab to SCIRun. The package contains an interface, which allows for small Matlab scripts to be inserted into SCIRun's dataflow networks and a converter to import and export SCIRun dataflow objects as Matlab files. ---- ==='''Module Reference'''=== ===='''Interface'''==== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlab|InterfaceWithMatlab]] :Module for interactively communicating with Matlab ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlabViaBundles|InterfaceWithMatlabViaBundles]] :Module for interactively communicating with Matlab using Bundles ===='''DataIO'''==== ----- [[CIBC:Documentation:SCIRun:Reference|Go back to Reference Documentation]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceToMatlab 0 1091 3231 2006-10-19T21:33:21Z Jeroen 19 CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceToMatlab moved to CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlab wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlab]] CIBC:Documentation 0 1092 1474 2006-10-19T21:44:37Z Jeroen 19 CIBC:Documentation moved to CIBC:Documentation:SCIRun wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun]] 1641 1474 2006-10-19T21:57:40Z Jeroen 19 wikitext text/x-wiki =='''Documentation Portal'''== This page contains links to the documentation for the various software projects that are being developed as part of the 'Center for Integrative BioMedical Computing'. ===Software Documentation=== ;[[CIBC:Documentation:SCIRun|SCIRun/BioPSE]] :Problem Solving Environment for BioMedical Applications ;[[CIBC:Documentation:SCIRun|BioImage]] :Application for displaying and analyzing biomedical images ;[[CIBC:Documentation:SCIRun|BioTensor]] :Application for displaying and analyzing tensor data ;[[CIBC:Documentation:SCIRun|BioFEM]] :Application for calculating electric fields in a finite element mesh CIBC:Documentation:SCIRun:ReleaseNotes:3.0 0 1088 1512 1480 2006-10-20T01:48:02Z Jeroen 19 wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 1.26.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. ====Modules==== * All modules have been given a new name. ====Documentation==== * Documentation has been merged over into a Wiki, so users can help updating and documenting the software system. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- [[CIBC:Documentation:SCIRun|Go back to SCIRun Documentation]] Main Page 0 1 1495 1481 2006-10-20T17:39:29Z Mjc 35 /* Development Info */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Project:module development 0 1093 1482 2006-10-20T17:58:48Z Mjc 35 wikitext text/x-wiki In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by Package::Category::ModuleName Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. Our first example: "Hello World!" -- SCIRun style. SCIRun::Examples::PrintHelloWorldToScreen To find the source code for PrintHelloWorldToScreen, we now know to look in [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc]SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc 1483 1482 2006-10-20T18:01:52Z Mjc 35 wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. === Examples === Our first example: "Hello World!" -- SCIRun style. SCIRun::Examples::PrintHelloWorldToScreen To find the source code for PrintHelloWorldToScreen, we now know to look in [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc]SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc 1497 1483 2006-10-20T18:04:13Z Mjc 35 /* Examples */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen To find the source code for PrintHelloWorldToScreen, we now know to look in [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc]SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab 0 1071 1485 1484 2006-10-20T18:56:27Z Jeroen 19 /* '''InterfaceWithMatlab''' */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: 19 October 2006 : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- [[CIBC:Documentation:SCIRun:Rereference:MatlabInterface|Go back to MatlabInterface]] 1487 1485 2006-10-20T18:57:02Z Jeroen 19 /* See Also */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: 19 October 2006 : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- === See Also === :[[CIBC:Documentation:MatlabInterface:Interface::InterfaceToMatlabViaBundles|InterfaceToMatlabViaBundles]] ---- [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|Go back to MatlabInterface]] 1488 1487 2006-10-20T19:07:09Z Jeroen 19 /* See Also */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: 19 October 2006 : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- ---- [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|Go back to MatlabInterface]] 1489 1488 2006-10-20T19:07:24Z Jeroen 19 /* Recent Changes */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: 19 October 2006 : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|Go back to MatlabInterface]] 1490 1489 2006-10-20T20:23:03Z Jeroen 19 wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: {{CURRENTDAY}} October 2006, {{CURRENTTIME}} : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|Go back to MatlabInterface]] 1491 1490 2006-10-20T20:25:04Z Jeroen 19 /* Information */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: {{CURRENTDAY}} {{CURRENTMONTH}} {{CURRENTYEAR}}, {{CURRENTTIME}} : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|Go back to MatlabInterface]] 1492 1491 2006-10-20T20:25:19Z Jeroen 19 /* Information */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|Go back to MatlabInterface]] 1493 1492 2006-10-20T20:29:15Z Jeroen 19 /* Information */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Last modified: 20 October 2006 : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|Go back to MatlabInterface]] 1577 1493 2006-10-20T20:37:46Z Jeroen 19 /* Information */ wikitext text/x-wiki == '''InterfaceWithMatlab''' == ===Information=== : Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] : Catagory: Interface : Author(s): Jeroen Stinstra : Status: Supported in latest version : Version: '''1.26''' [[CIBC:Documentation:SCIRun:1.24:Reference:MatlabInterface:Interface:InterfaceWithMatlab:|1.24]] ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate Matlab code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd/string) into a matlabarray and puts the object in the current workspace of Matlab, (2) it executes Matlab code that can be provided within the interface, (3) it translates back the matlabarrays in Matlab's workspace into SCIRun objects. ====Overview==== This module launches Matlab as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote Matlab engine that is configured to require a password when launching Matlab. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple Matlab processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in Matlab and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the Matlab OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively Matlab can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the Matlabprocess is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in Matlab, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in Matlab is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local Configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote Configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration File==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' :'''START MATLAB''': This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab :'''DISABLE''': This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. :'''PASSWORD''': A simple password, as a first line of defense. Better ways will follow. :'''RHOSTS''': A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. :'''MATLABTIMEOUT''': How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:InterfaceToMatlab_GUI1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another Matlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure 1. [[Image:InterfaceToMatlabGUI2.png]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to Matlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:InterfaceToMatlabGUI3.png]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple Matlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:InterfaceToMatlabGUI4.png]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ---- === Frequently Asked Questions === ==== Can I use functions in Matlab Code Entry field? ==== The module at this point does not support any support to define matlab functions within the interface module. One has to define functions in a separate matlab .m file. The module only gives access to the main Workspace. One can call functions from the matlab script by typing the name of the function and saving the function in a separate file. ---- === Known Bugs === ---- === Recent Changes === Support for fields with no data was fixed (r35504)-- jeroen ---- [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|Go back to MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlab 0 1094 3234 2006-10-20T18:58:07Z Jeroen 19 CIBC:Documentation:SCIRun:Reference:MatlabInterface:Interface:InterfaceWithMatlab moved to CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab]] CIBC:Documentation:SCIRun:Reference:MatlabInterface 0 1090 1522 1486 2006-10-20T19:06:22Z Jeroen 19 /* '''Interface''' */ wikitext text/x-wiki =='''MatlabInterface Reference'''== ==='''Package Description'''=== This package adds an interface to Matlab to SCIRun. The package contains an interface, which allows for small Matlab scripts to be inserted into SCIRun's dataflow networks and a converter to import and export SCIRun dataflow objects as Matlab files. ---- ==='''Module Reference'''=== ===='''Interface'''==== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab|InterfaceWithMatlab]] :Module for interactively communicating with Matlab ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlabViaBundles|InterfaceWithMatlabViaBundles]] :Module for interactively communicating with Matlab using Bundles ===='''DataIO'''==== ----- [[CIBC:Documentation:SCIRun:Reference|Go back to Reference Documentation]] CIBC:Documentation:SCIRun:Reference:SCIRun 0 1095 1494 2006-10-20T22:29:59Z Jeroen 19 wikitext text/x-wiki =='''SCIRun Reference'''=== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a 'bundle' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a 'colormap2' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a 'colormap' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a 'field' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a 'matrix' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a 'nrrd' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a 'path' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a 'string' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module adds a 'bundle' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module adds a 'colormap2' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module adds a 'colormap' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module adds a 'field' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module adds a 'matrix' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module adds a 'nrrd' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module adds a 'path' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module adds a 'string' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a bundle from disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :The ColorMap Read a persistent colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :The ColorMap2 Read a persistent 2d colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :The ReadPath module reads a persistent camera path from a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a bundle to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :Saves persistent field objects received from upstream modules. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :The WriteMatrix modules saves a persistent representation of a matrix to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :The WritePath module saves persistent representation of a path to a file. ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|AppendMatrix]] :Composite a matrix from components. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- [[CIBC:Documentation:SCIRun:Reference|Go back to Reference Documentation]] 1523 1494 2006-10-20T22:51:41Z Jeroen 19 wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a 'bundle' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a 'colormap2' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a 'colormap' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a 'field' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a 'matrix' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a 'nrrd' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a 'path' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a 'string' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module adds a 'bundle' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module adds a 'colormap2' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module adds a 'colormap' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module adds a 'field' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module adds a 'matrix' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module adds a 'nrrd' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module adds a 'path' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module adds a 'string' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a bundle from disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :The ColorMap Read a persistent colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :The ColorMap2 Read a persistent 2d colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :The ReadPath module reads a persistent camera path from a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a bundle to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :Saves persistent field objects received from upstream modules. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :The WriteMatrix modules saves a persistent representation of a matrix to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :The WritePath module saves persistent representation of a path to a file. ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|AppendMatrix]] :Composite a matrix from components. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- [[CIBC:Documentation:SCIRun:Reference|Go back to Reference Documentation]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle 0 1096 1528 2006-10-20T22:33:47Z Jeroen 19 wikitext text/x-wiki =='''GetBundlesFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'bundle' object from a bundle. ====Detailed Description==== This module retrieves a 'bundle' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'bundle' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle 0 1097 1556 2006-10-20T22:40:14Z Jeroen 19 wikitext text/x-wiki =='''GetColorMapsFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'colormap' object from a bundle. ====Detailed Description==== This module retrieves a 'colormap' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'colormap' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle 0 1098 1557 2006-10-20T22:40:45Z Jeroen 19 wikitext text/x-wiki =='''GetFieldsFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'field' object from a bundle. ====Detailed Description==== This module retrieves a 'field' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'field' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle 0 1099 1558 2006-10-20T22:41:34Z Jeroen 19 wikitext text/x-wiki =='''GetMatricesFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'matrix' object from a bundle. ====Detailed Description==== This module retrieves a 'matrix' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'matrix' object. Since Nrrd and Matrix objects can represent the same kind of data. The bundle class has a built in converter from matrix to nrrd. Hence all compatible matrix objects are listed as well and will be converted on the spot if they are selected. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle 0 1100 1559 2006-10-20T22:42:44Z Jeroen 19 wikitext text/x-wiki =='''GetNrrdsFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'nrrd' object from a bundle. ====Detailed Description==== This module retrieves a 'nrrd' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'nrrd' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle 0 1101 1516 2006-10-20T22:43:27Z Jeroen 19 wikitext text/x-wiki =='''GetPathsFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'path' object from a bundle. ====Detailed Description==== This module retrieves a 'path' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'path' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle 0 1102 1561 2006-10-20T22:44:28Z Jeroen 19 wikitext text/x-wiki =='''GetStringsFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'string' object from a bundle. ====Detailed Description==== This module retrieves a 'string' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'string' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle 0 1103 1562 2006-10-20T22:45:59Z Jeroen 19 wikitext text/x-wiki =='''InsertBundlesIntoBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module adds a 'bundle' object to a bundle stream. ====Detailed Description==== This module adds a 'bundle' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'bundle' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'bundle' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle 0 1104 1563 2006-10-20T22:47:22Z Jeroen 19 wikitext text/x-wiki =='''InsertColorMapsIntoBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module adds a 'colormap' object to a bundle stream. ====Detailed Description==== This module adds a 'colormap' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'colormap' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'colormap' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle 0 1105 1564 2006-10-20T22:48:21Z Jeroen 19 wikitext text/x-wiki =='''InsertFieldsIntoBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module adds a 'field' object to a bundle stream. ====Detailed Description==== This module adds a 'field' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'field' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'field' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle 0 1106 1565 2006-10-20T22:48:51Z Jeroen 19 wikitext text/x-wiki =='''InsertMatricesIntoBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module adds a 'matrix' object to a bundle stream. ====Detailed Description==== This module adds a 'matrix' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'matrix' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'matrix' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle 0 1107 1566 2006-10-20T22:49:47Z Jeroen 19 wikitext text/x-wiki =='''InsertNrrdsIntoBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module adds a 'nrrd' object to a bundle stream. ====Detailed Description==== This module adds a 'nrrd' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'nrrd' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'nrrd' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle 0 1108 1567 2006-10-20T22:50:21Z Jeroen 19 wikitext text/x-wiki =='''InsertPathsIntoBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module adds a 'path' object to a bundle stream. ====Detailed Description==== This module adds a 'path' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'path' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'path' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle 0 1109 1568 2006-10-20T22:50:45Z Jeroen 19 wikitext text/x-wiki =='''InsertStringsIntoBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module adds a 'string' object to a bundle stream. ====Detailed Description==== This module adds a 'string' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'string' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'string' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles 0 1110 1569 2006-10-20T22:51:15Z Jeroen 19 wikitext text/x-wiki =='''JoinBundles'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This merges the contents of multiple bundles into one bundle. ====Detailed Description==== This merges the contents of multiple bundles into one bundle. If the same object name exists in multiple bundles the one from the right most input is chosen and the other one will be purged. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo 0 1111 1573 2006-10-20T22:52:32Z Jeroen 19 wikitext text/x-wiki =='''ReportBundleInfo'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module lists all the objects stored in a bundle. ====Detailed Description==== This module lists all the objects stored in a bundle. The names of all the objects are listed as well their types. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix 0 1112 1544 2006-10-20T22:53:20Z Jeroen 19 wikitext text/x-wiki =='''ApplyMappingMatrix'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Apply a mapping matrix to project the data from one field onto the mesh of another field. ====Detailed Description==== This module maps the "Source" field onto the geometry of the "Destination" field using the "Mapping" matrix to do the projection. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled 0 1113 1545 2006-10-20T22:53:47Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldData'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Perform a specified functional transform on all of the data in a field. ====Detailed Description==== Compute the specified function on each data element in the input field. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are x, y, z, and v, where x, y, and z are the positions of the data point and v is the value of the input field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = x + v;" would return a new field containing the x position of each element added with the value that was already there. "result = v.x();" could be used to extract the x component of a vector field into a scalar field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled2 0 1114 1546 2006-10-20T22:54:14Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldData2'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Perform a specified functional transform to each pair of data elements in the two input fields. ====Detailed Description==== Compute the specified function for each pair of corresponding data elements in the input fields. In order to correspond the data points, this module requires that the two input fields share the same mesh and have their data at the same location. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are the x, y, and z positions of the data point, v0 for the first field's data element and v1 for the second field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = v0 + v1;" would add each of the corresponding elements of the two fields. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled3 0 1115 1547 2006-10-20T22:54:37Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldData3'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Perform a specified functional transform on all of the data in a field. ====Detailed Description==== Compute the specified function for each tripple of corresponding data elements in the input fields. In order to correspond the data points, this module requires that the three input fields share the same mesh and have their data at the same location. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are the x, y, and z positions of the data point, v0 for the first field's data element, v1 for the second field's data element, and v2 for the third field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = v0 + v1 + v3;" would add each of the corresponding elements of the two fields. "result = Vector(v0, v1, v2);" would concatenate the values of three scalar fields into a vector field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients 0 1116 1548 2006-10-20T22:54:59Z Jeroen 19 wikitext text/x-wiki =='''CalculateGradients'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Compute the derivative of a scalar field and output it as a vector field. ====Detailed Description==== The CalculateGradients module computes the derivative of a scalar field and converts it to a vector field. The gradient is the derivative of three dimensions; the first component in the X direction, the second component in the Y direction, and the third component in the Z direction grid, computing the general direction of "flow" at a specific point on the geometry. Not all field types are supported by the CalculateGradients module. At this time only derivatives of TetVolMesh and LatVolMesh are supported. The CalculateGradients module has no GUI. If CalculateGradients recieves as input a Field type it does not support, an error message appears in the Error frame of the SCIRun environment. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes 0 1117 1549 2006-10-20T22:55:21Z Jeroen 19 wikitext text/x-wiki =='''CalculateLatVolGradientsAtNodes'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Compute the derivative of a scalar lattice and output it as a vector lattice. ====Detailed Description==== The CalculateLatVolGradientsAtNodes module computes the derivative of a scalar field and converts it to a vector field. The gradient is the derivative of three dimensions; the first component in the X direction, the second component in the Y direction, and the third component in the Z direction grid, computing the general direction of "flow" at a specific point on the geometry. CalculateLatVolGradientsAtNodes only supports computation of the gradient on node centered LatVolFields of scalar type. The CalculateLatVolGradientsAtNodes module has no GUI. If CalculateLatVolGradientsAtNodes recieves as input a Field type it does not support, an error message appears in the Error frame of the SCIRun environment. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals 0 1118 1550 2006-10-20T22:55:43Z Jeroen 19 wikitext text/x-wiki =='''CalculateNodeNormals'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Make a new vector field that points to the input point. ====Detailed Description==== This creates a new vector field containing the same geometry and data location as the input field. It works in two modes. If the input PointCloudField contains only one point, all of the vectors in the output field will be attracted to that input point. If the input PointCloudField contains two or more points, the first two points will be used as a line and all the vectors in the output field will be attracted to that line. If the input field contains scalar values, the vectors in the output field will be scaled by those values. Otherwise they will all be normalized. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes 0 1119 1551 2006-10-20T22:56:08Z Jeroen 19 wikitext text/x-wiki =='''CalculateVectorMagnitudes'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Computes the gradient of a field. ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis 0 1120 1552 2006-10-20T22:56:34Z Jeroen 19 wikitext text/x-wiki =='''ConvertFieldBasis'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): McKay Davis :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== ConvertFieldBasis can modify the location of data in the input field. ====Detailed Description==== Upon execution the UI will display the input field name and the current location the data values for the that field are located. The output field's new data value location is selected from a list of available basis types. The output field will contain the same geometry as the input field with the data value storage at the newly specified location. All output data values are reset to 0. There is currently support for three basis functions within SCIRun. The first is None, meaning that there is no data associated with the field and that no interpolation is supported. The Constant basis is when data is associated with the elements of a field. This data is not interpolated but is constant within each element and non-continuous at element boundaries. The third basis function is Linear. Linear means that the data is associated with the nodes of a field. Any interpolation will be done linearly within elements (but not across element boundaries). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType 0 1121 1553 2006-10-20T22:57:01Z Jeroen 19 wikitext text/x-wiki =='''ConvertFieldDataType'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): McKay Davis :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== ConvertFieldDataType is used to change the type of data associated with the field elements. ====Detailed Description==== ConvertFieldDataType allows the user to change the datatype at each field data_at location. This module also attempts to convert the data in the field to the new type, if possible. If no conversion is possible, the output field will contain default zero values. Note that conversion from a large datatype to a smaller datatype usually results in a loss of precision. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode 0 1122 1554 2006-10-20T22:58:45Z Jeroen 19 wikitext text/x-wiki =='''ConvertLatVolDataFromElemToNode'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Make a new field with data at nodes instead of elements. ====Detailed Description==== ConvertLatVolDataFromElemToNode creates a new field with the data at the mesh nodes rather than at the elements. This currently only works on LatVolField, StructHexVolField, ImageField, and StuctQuadSurfField field types. The data must be at cells/faces as appropriate to the field type. A new field is created such that the data remains at the same positions in space but occupy the nodes of the new mesh rather than being located at the cell/face locations. This is the opposite of MODULE REFERENCE. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem 0 1123 1555 2006-10-20T22:59:13Z Jeroen 19 wikitext text/x-wiki =='''ConvertLatVolDataFromNodeToElem'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Make a new field with data at elements instead of nodes. ====Detailed Description==== ConvertLatVolDataFromNodeToElem creates a new field with the data at the mesh elements rather than at the nodes. This currently only works on LatVolField and ImageField field types. The data must be at the nodes. A new field is created such that the data remains at the same positions in space but occupy the cell/face centers of the new mesh rather than being located at the node locations. This is the opposite of MODULE REFERENCE. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination 0 1124 1570 2006-10-20T22:59:50Z Jeroen 19 wikitext text/x-wiki =='''MapFieldDataFromSourceToDestination'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ====Detailed Description==== MapFieldDataFromSourceToDestination will find the corresponding data value in the Source for each node in the Destination Field. The data values can be stored at the nodes, cells, edges, or faces of the mesh at either the input or output ports. If the geometries of the input ports are different, the module will calculate data values for the Destination by interpolation. The MapFieldDataFromSourceToDestination GUI contains a check box for Enable Interpolation and Use Closest Element If Not Interpable. The Enable Interpolation check box allows the user to select the option of interpolation. The user can also select the option of choosing the closest element when a data value cannot be interpolated. The Maximum Closeness option indicates the maximum distance between points of interpolation and data values. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol 0 1125 1571 2006-10-20T23:00:25Z Jeroen 19 wikitext text/x-wiki =='''MaskLatVol'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): McKay Davis, Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ====Detailed Description==== Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. This is similar to the behavior of the MODULE REFERENCE module, except that the input field is masked rather than clipped out. The function should be a valid C++ expression. It will be dynamically compiled into a function of the form "bool inside_p(double x, double y, double z, TYPE v) { return EXPR; }" where TYPE is the data type contained in the field, and EXPR is the function typed into the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf 0 1126 1572 2006-10-20T23:01:04Z Jeroen 19 wikitext text/x-wiki =='''MaskLatVolWithTriSurf'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): ? :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== ? ====Detailed Description==== ? ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures 0 1127 1574 2006-10-20T23:02:20Z Jeroen 19 wikitext text/x-wiki =='''ReportMeshQualityMeasures'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Jason Shepherd :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Nodal movement to improve mesh quality. ====Detailed Description==== The ReportMeshQualityMeasures module is used to calculate multiple mesh quality metrics and report these metrics to the user. The Sandia National Laboratories VERDICT library (http://cubit.sandia.gov/verdict.html) performs the metric calculations. Metric descriptions are taken from VERDICT as follows (descriptions are by element type.) Description of Tetrahedral Quality Measures Function Name Dimension Full Range Acceptable Range Reference ------------- ---------- -------- --------------- --------- Aspect Ratio Bet L^0 1 to inf 1 to 3 1 Aspect Ratio Gam L^0 1 to inf 1 to 3 1 Element Volume L^3 -inf to +inf None 1 Condition No. L^0 1 to inf 1 to 3 2 Jacobian L^3 -inf to inf None 2 Scaled Jacobian L^0 -1.414 to +1.414 0.5 to +1.414 2 Shape L^0 0 to 1 0.2 to 1 3 Relative Size L^0 0 to 1 0.2 to 1 3 Shape and Size L^0 0 to 1 0.2 to 1 3 Distortion L^2 -1 to 1 0.6 to 1 4 ------------- ---------- -------- -------------- --------- Approximate Tetrahedral Quality Definitions: Aspect Ratio Beta: CR / (3.0 * IR) where CR = circumsphere radius, IR = inscribed sphere radius Aspect Ratio Gamma: Srms**3 / (8.479670*V) where Srms = sqrt(Sum(Si**2)/6), Si = edge length Element Volume: (1/6) * Jacobian at corner node Condition No. Condition number of the Jacobian matrix at any corner Jacobian: Minimum pointwise volume at any corner Scaled Jacobian: Minimum Jacobian divided by the lengths of 3 edge vectors Shape: 3/Mean Ratio of weighted Jacobian matrix Relative Size: Min( J, 1/J ), where J is determinant of weighted Jacobian matrix Shape and Size: Product of Shape and Relative Size Distortion: {min(|J|)/actual volume}*parent volume, parent volume = 1/6 for tet References for Tetrahedral Quality Measures: 1. V. N. Parthasarathy et al, A comparison of tetrahedron quality measures, Finite Elem. Anal. Des., Vol 15(1993), 255-261. 2. P. Knupp, Achieving Finite Element Mesh Quality via Optimization of the Jacobian Matrix Norm and Associated Quantities, Intl. J. Numer. Meth. Engng. 2000, 48:1165-1185. 3. P. Knupp, Algebraic Mesh Quality Metrics for Unstructured Initial Meshes, submitted for publication. 4. SDRC/IDEAS Simulation: Finite Element Modeling--User's Guide Description of Hexahedral Quality Measures Function Name Dimension Full Range Acceptable Range Reference ------------- ---------- ----- --------------- --------- Aspect Ratio L^0 1 to inf 1 to 4 1 Skew L^0 0 to 1 0 to 0.5 1 Taper L^0 0 to +inf 0 to 0.4 1 Element Volume L^3 -inf to +inf None 1 Stretch L^0 0 to 1 0.25 to 1 2 Diagonal Ratio L^0 0 to 1 0.65 to 1 3 Dimension L^1 0 to inf None 1 Condition No. L^0 1 to inf 1 to 8 4 Jacobian L^3 - inf to inf None 4 Scaled Jacobian L^0 -1 to +1 0.5 to 1 4 Shear L^0 0 to 1 0.3 to 1 5 Shape L^0 0 to 1 0.3 to 1 5 Relative Size L^0 0 to 1 0.5 to 1 5 Shear and Size L^0 0 to 1 0.2 to 1 5 Shape and Size L^0 0 to 1 0.2 to 1 5 Distortion L^2 -1 to 1 0.6 to 1 6 ------------- ---------- ----- ---------------- --------- Approximate Hexahedral Quality Definitions: Aspect Ratio: Maximum edge length ratios at hex center. Skew: Maximum |cos A| where A is the angle between edges at hex center. Taper: Maximum ratio of lengths derived from opposite edges. Element Volume: Jacobian at hex center. Stretch: Sqrt(3) * minimum edge length / maximum diagonal length. Diagonal Ratio: Minimum diagonal length / maximum diagonal length. Dimension: Pronto-specific characteristic length for stable time step calculation. Char_length = Volume / 2 grad Volume. Condition No. Maximum condition number of the Jacobian matrix at 8 corners. Jacobian: Minimum pointwise volume of local map at 8 corners and center of hex. Scaled Jacobian: Minimum Jacobian divided by the lengths of the 3 edge vectors. Shear: 3/Mean Ratio of Jacobian Skew matrix Shape: 3/Mean Ratio of weighted Jacobian matrix Relative Size: Min( J, 1/J ), where J is determinant of weighted Jacobian matrix Shear and Size: Product of Shear and Relative Size Shape and Size: Product of Shape and Relative Size Distortion: {min(|J|)/actual volume}*parent volume, parent volume = 8 for hex References for Hexahedral Quality Measures: 1. L.M. Taylor, and D.P. Flanagan, Pronto3D - A Three Dimensional Transient Solid Dynamics Program, SAND87-1912, Sandia National Laboratories, 1989. 2. FIMESH code 3. Unknown 4. P. Knupp, Achieving Finite Element Mesh Quality via Optimization of the Jacobian Matrix Norm and Associated Quantities, Intl. J. Numer. Meth. Engng. 2000, 48:1165-1185. 5. P. Knupp, Algebraic Mesh Quality Metrics for Unstructured Initial Meshes, submitted for publication. 6. SDRC/IDEAS Simulation: Finite Element Modeling--User's Guide Description of Triangular Quality Measures Function Name Dimension Full Range Acceptable Range Reference ------------- ---------- --------- --------------- --------- Element Area L^2 0 to inf None 1 Maximum Angle degrees 60 to 180 60 to 90 1 Minimum Angle degrees 0 to 60 30 to 60 1 Condition No. L^0 1 to inf 1 to 1.3 2 Scaled Jacobian L^0 -1.155 to +1.155 0.5 to 1.155 2 Relative Size L^0 0 to 1 0.25 to 1 3 Shape L^0 0 to 1 0.25 to 1 3 Shape and Size L^0 0 to 1 0.25 to 1 3 Distortion L^2 -1 to 1 0.6 to 1 4 ------------- ---------- -------- --------------- --------- Approximate Triangular Quality Definitions: Element Area: (1/2) * Jacobian at corner node Maximum Angle: Maximum included angle in triangle Minimum Angle: Minimum included angle in triangle Condition No. Condition number of the Jacobian matrix Scaled Jacobian: Minimum Jacobian divided by the lengths of 2 edge vectors Relative Size: Min( J, 1/J ), where J is determinant of weighted Jacobian matrix Shape: 2/Condition number of weighted Jacobian matrix Shape and Size: Product of Shape and Relative Size Distortion: {min(|J|)/actual area}*parent area, parent area = 1/2 for triangular element References for Triangular Quality Measures: 1. Traditional. 2. P. Knupp, Achieving Finite Element Mesh Quality via Optimization of the Jacobian Matrix Norm and Associated Quantities, Intl. J. Numer. Meth. Engng. 2000, 48:1165-1185. 3. P. Knupp, Algebraic Mesh Quality Metrics for Unstructured Initial Meshes, submitted for publication. 4. SDRC/IDEAS Simulation: Finite Element Modeling--User's Guide Description of Quadrilateral Quality Measures Function Name Dimension Full Range Acceptable Range Reference ------------- ---------- ----- --------------- --------- Aspect Ratio L^0 1 to inf 1 to 4 1 Skew L^0 0 to 1 0 to 0.5 1 Taper L^0 0 to inf 0 to 0.7 1 Warpage L^0 0 to 1 0.9 to 1.0 1 Element Area L^2 -inf to +inf None 1 Stretch L^0 0 to 1 0.25 to 1 2 Minimum Angle degrees 0 to 90 45 to 90 3 Maximum Angle degrees 90 to 360 90 to 135 3 Condition No. L^0 1 to inf 1 to 4 4 Jacobian L^2 - inf to inf None 4 Scaled Jacobian L^0 -1 to +1 0.5 to 1 4 Shear L^0 0 to 1 0.3 to 1 5 Shape L^0 0 to 1 0.3 to 1 5 Relative Size L^0 0 to 1 0.3 to 1 5 Shear and Size L^0 0 to 1 0.2 to 1 5 Shape and Size L^0 0 to 1 0.2 to 1 5 Distortion L^2 -1 to 1 0.6 to 1 6 ------------- ---------- ----- -------------- --------- Approximate Quadrilateral Quality Definitions: Aspect Ratio: Maximum edge length ratios at quad center Skew: Maximum |cos A| where A is the angle between edges at quad center Taper: Maximum ratio of lengths derived from opposite edges Warpage: Cosine of Minimum Dihedral Angle formed by Planes Intersecting in Diagonals Element Area: Jacobian at quad center Stretch: Sqrt(2) * minimum edge length / maximum diagonal length Minimum Angle: Smallest included quad angle (degrees). Maximum Angle: Largest included quad angle (degrees). Condition No. Maximum condition number of the Jacobian matrix at 4 corners Jacobian: Minimum pointwise volume of local map at 4 corners and center of quad Scaled Jacobian: Minimum Jacobian divided by the lengths of the 2 edge vectors Shear: 2/Condition number of Jacobian Skew matrix Shape: 2/Condition number of weighted Jacobian matrix Relative Size: Min( J, 1/J ), where J is determinant of weighted Jacobian matrix Shear and Size: Product of Shear and Relative Size Shape and Size: Product of Shape and Relative Size Distortion: {min(|J|)/actual area}*parent area, parent area = 4 for quad References for Quadrilateral Quality Measures: 1. J. Robinson, CRE Method of element testing and the Jacobian shape parameters, Eng. Comput., Vol 4, 1987. 2. FIMESH code. 3. Unknown. 4. P. Knupp, Achieving Finite Element Mesh Quality via Optimization of the Jacobian Matrix Norm and Associated Quantities, Intl. J. Numer. Meth. Engng. 2000, 48:1165-1185. 5. P. Knupp, Algebraic Mesh Quality Metrics for Unstructured Initial Meshes, submitted for publication. 6. SDRC/IDEAS Simulation: Finite Element Modeling--User's Guide ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries 0 1128 1575 2006-10-20T23:03:06Z Jeroen 19 wikitext text/x-wiki =='''SwapFieldDataWithMatrixEntries'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== Add and remove data from a field. ====Detailed Description==== This module performs two simultanious operations. First the "Input Field" is split into it's mesh part it's data values. The data values are packaged up and passed to the "Output Matrix" port. Second the input field geometry is joined with the data from the Input Matrix, and the result is passed out on the "Output Field" port. If the input matrix is not present, then the second operation is not performed and the Output Field is the same as the Input Field. The format of the "Output Matrix" will be a column matrix if the nput field was of scalar type. It will be an Nx3 matrix if the input field contained vectors. If the field contained tensors it will be Nx9 matrix, where the tensor is flattened out in left to right, top to bottom order. Column 0 contains (0, 0), column 1 contains (0, 1), column 2 contains (0,2), column 3 contains (1, 0), etc. The "Input Matrix" should have the same number of values as the field where the values are to be stored. The type of the Iutput Field is preserved in the Output field as well. So for instance if the input field is a vector field, the Output Field will also be a vector field, and the input matrix should be an Nx3 matrix where N is equal to the number of elements to be filled in. Feb 11, 2004: The module now will try to preserve the scalar type of the field, so if you pass it in a TetVolField of integers and a row matrix, it will return a TetVolField of integers. If the types are not convertible then you will still get a default Vector,Tensor, or double field as appropriate. If you need the old behavior use MODULE REFERENCE to convert the input field to double type before passing it in. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- [[CIBC:Documentation:SCIRun:Reference:SCIRun|Go back to SCIRun]] Main Page 0 1 1496 1495 2006-10-20T23:30:39Z Jeroen 19 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Documentation Portal=== [[CIBC:Documentation| Documentation Portal]] ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1510 1496 2006-10-20T23:31:38Z Jeroen 19 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1511 1510 2006-10-25T20:57:47Z Erikj 2 /* Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] <math>\sqrt{4}</math> 1529 1511 2006-10-25T20:58:00Z Erikj 2 /* Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1659 1529 2006-10-27T17:33:02Z Jeroen 19 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Project:module development 0 1093 1498 1497 2006-10-23T14:11:09Z Mjc 35 /* "Hello World!" -- SCIRun style. */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] 1499 1498 2006-10-23T14:33:14Z Mjc 35 /* "Hello World!" -- SCIRun style. */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... 1500 1499 2006-10-23T14:36:15Z Mjc 35 /* Examples */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === === Getting Input === === Sending Output === === Changing Data Values === === User Input === === Generic Algorithms === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... 1501 1500 2006-10-23T14:37:12Z Mjc 35 /* "Hello World!" -- SCIRun style. */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === === Sending Output === === Changing Data Values === === User Input === === Generic Algorithms === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... 1502 1501 2006-10-23T14:37:26Z Mjc 35 /* Generic Algorithms */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === === Sending Output === === Changing Data Values === === User Input === === Generic Algorithms === 1503 1502 2006-10-23T14:39:34Z Mjc 35 /* Getting Input */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === Files: Now we would like to get some data passed into this module through its input port. This takes 2 edits to our module. <pre> // Print the value of the input fields data pointer when we execute. void GetInputField::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputField must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputField module got data :" << field_handle.get_rep() << endl; } </pre> === Sending Output === === Changing Data Values === === User Input === === Generic Algorithms === 1504 1503 2006-10-23T14:41:31Z Mjc 35 /* Getting Input */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputField.cc SCIRun/src/Dataflow/Modules/Examples/GetInputField.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputField.xml SCIRun/src/Dataflow/XML/GetInputField.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] Now we would like to get some data passed into this module through its input port. This takes 2 edits to our module. <pre> // Print the value of the input fields data pointer when we execute. void GetInputField::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputField must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputField module got data :" << field_handle.get_rep() << endl; } </pre> === Sending Output === === Changing Data Values === === User Input === === Generic Algorithms === 1505 1504 2006-10-23T15:10:05Z Mjc 35 /* Getting Input */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === SCIRun::Examples::GetInputField Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputField.cc SCIRun/src/Dataflow/Modules/Examples/GetInputField.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputField.xml SCIRun/src/Dataflow/XML/GetInputField.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This example lives in the source tree as GetInputField, but if you are writing a module as we go, you could simply add the new bits as you go to your module. Now that we know how to execute, we would like to get some data passed into this module through its input port. First we need to let SCIRun know that we expect input and what type of input we expect. This happens in the XML file. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> </io> </pre> The io section of our component contains port information. We give it a name (important to remember as we ask for this port by name from our C code) and we also give it a datatype. In this case we want to and only will accept SCIRun::Field as an input. Now when we instantiate this module, it will be created with a Field input port. <pre> // Print the value of the input fields data pointer when we execute. void GetInputField::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputField must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputField module got data :" << field_handle.get_rep() << endl; } </pre> All data that pass through ports in SCIRun are passed using Handles. Our handles are reference counted locking handles. They are essentially smart pointers that delete the object they point to when no one has a reference to it anymore. First we declare an empty FieldHandle, then we ask for it to be filled with data from the input port named "InField". As you recall this is the exact string used in the xml file to declare the port name. get_input_handle does a number of things for you. If the last argument is true, then we require input data on this port (some ports are optional). get_input_handle then blocks waiting for data to arrive on the port, makes sure it is non NULL, and sets the handle appropriately. get_rep() is a method on the handle class itself. It returns the value of the underlying pointer. handles overload the -> operator, so that any calls made that way work as if the handle were an actual pointer to the object type. Using get_rep() we print out the value of the pointer to the shell, verifying that we indeed got some valid data. === Sending Output === === Changing Data Values === === User Input === === Generic Algorithms === 1506 1505 2006-10-23T15:25:30Z Mjc 35 /* Sending Output */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === SCIRun::Examples::GetInputField Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputField.cc SCIRun/src/Dataflow/Modules/Examples/GetInputField.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputField.xml SCIRun/src/Dataflow/XML/GetInputField.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This example lives in the source tree as GetInputField, but if you are writing a module as we go, you could simply add the new bits as you go to your module. Now that we know how to execute, we would like to get some data passed into this module through its input port. First we need to let SCIRun know that we expect input and what type of input we expect. This happens in the XML file. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> </io> </pre> The io section of our component contains port information. We give it a name (important to remember as we ask for this port by name from our C code) and we also give it a datatype. In this case we want to and only will accept SCIRun::Field as an input. Now when we instantiate this module, it will be created with a Field input port. <pre> // Print the value of the input fields data pointer when we execute. void GetInputField::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputField must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputField module got data :" << field_handle.get_rep() << endl; } </pre> All data that pass through ports in SCIRun are passed using Handles. Our handles are reference counted locking handles. They are essentially smart pointers that delete the object they point to when no one has a reference to it anymore. First we declare an empty FieldHandle, then we ask for it to be filled with data from the input port named "InField". As you recall this is the exact string used in the xml file to declare the port name. get_input_handle does a number of things for you. If the last argument is true, then we require input data on this port (some ports are optional). get_input_handle then blocks waiting for data to arrive on the port, makes sure it is non NULL, and sets the handle appropriately. get_rep() is a method on the handle class itself. It returns the value of the underlying pointer. handles overload the -> operator, so that any calls made that way work as if the handle were an actual pointer to the object type. Using get_rep() we print out the value of the pointer to the shell, verifying that we indeed got some valid data. === Sending Output === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc SCIRun/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml SCIRun/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we simply add an output port, and send the same data we got as input along through the output port. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> <outputs> <port> <name>OutField</name> <datatype>SCIRun::Field</datatype> </port> </outputs> </io> </pre> We add the output port and name it, very similar to adding the input port. <pre> void GetInputFieldAndSendAsOutput::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputFieldAndSendAsOutput must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputFieldAndSendAsOutput module got data :" << field_handle.get_rep() << endl; send_output_handle("OutField", field_handle); } </pre> send_output_handle takes the exact string we declared the output port with in our xml file, and we send the handle to our field along through the output port. Now we know how to get data and send data, lets do something with this Field. === Changing Data Values === === User Input === === Generic Algorithms === 1507 1506 2006-10-23T16:39:38Z Mjc 35 /* Changing Data Values */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === SCIRun::Examples::GetInputField Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputField.cc SCIRun/src/Dataflow/Modules/Examples/GetInputField.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputField.xml SCIRun/src/Dataflow/XML/GetInputField.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This example lives in the source tree as GetInputField, but if you are writing a module as we go, you could simply add the new bits as you go to your module. Now that we know how to execute, we would like to get some data passed into this module through its input port. First we need to let SCIRun know that we expect input and what type of input we expect. This happens in the XML file. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> </io> </pre> The io section of our component contains port information. We give it a name (important to remember as we ask for this port by name from our C code) and we also give it a datatype. In this case we want to and only will accept SCIRun::Field as an input. Now when we instantiate this module, it will be created with a Field input port. <pre> // Print the value of the input fields data pointer when we execute. void GetInputField::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputField must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputField module got data :" << field_handle.get_rep() << endl; } </pre> All data that pass through ports in SCIRun are passed using Handles. Our handles are reference counted locking handles. They are essentially smart pointers that delete the object they point to when no one has a reference to it anymore. First we declare an empty FieldHandle, then we ask for it to be filled with data from the input port named "InField". As you recall this is the exact string used in the xml file to declare the port name. get_input_handle does a number of things for you. If the last argument is true, then we require input data on this port (some ports are optional). get_input_handle then blocks waiting for data to arrive on the port, makes sure it is non NULL, and sets the handle appropriately. get_rep() is a method on the handle class itself. It returns the value of the underlying pointer. handles overload the -> operator, so that any calls made that way work as if the handle were an actual pointer to the object type. Using get_rep() we print out the value of the pointer to the shell, verifying that we indeed got some valid data. === Sending Output === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc SCIRun/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml SCIRun/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we simply add an output port, and send the same data we got as input along through the output port. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> <outputs> <port> <name>OutField</name> <datatype>SCIRun::Field</datatype> </port> </outputs> </io> </pre> We add the output port and name it, very similar to adding the input port. <pre> void GetInputFieldAndSendAsOutput::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputFieldAndSendAsOutput must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputFieldAndSendAsOutput module got data :" << field_handle.get_rep() << endl; send_output_handle("OutField", field_handle); } </pre> send_output_handle takes the exact string we declared the output port with in our xml file, and we send the handle to our field along through the output port. Now we know how to get data and send data, lets do something with this Field. === Changing Data Values === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetTetVolFieldValuesToZero.cc SCIRun/src/Dataflow/Modules/Examples/SetTetVolFieldValuesToZero.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetTetVolFieldValuesToZero.xml SCIRun/src/Dataflow/XML/SetTetVolFieldValuesToZero.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we get our first look at interfacing with a Field. The Field base class doesn't say much about what a field really is. Fields in SCIRun are designed somewhat like STL classes. There is a Field Concept, Mesh Concept, and Basis Concept. These guarantee certain interface to eachother such that they can be combined in a GenericField<> class via template arguments. This gives SCIRun great flexibility in Field creation. It also poses some logistical problems. For now we will assume the input to this module is a specific fully instantiated type. Later we will show how to deal with the vast array of possible types that 'could' come in through this Field port. <pre> typedef TetVolMesh<TetLinearLgn<Point> > TVMesh; typedef TetLinearLgn<double> DataBasis; typedef GenericField<TVMesh, DataBasis, vector<double> > TVField; </pre> This set of typedefs we create mostly for readablity. This is a Tetrahedral mesh with double data, with both data and mesh having a linear basis. <pre> // Must detach since we will be altering the input field. field_handle.detach(); </pre> The detach call here is required for valid Dataflow. We fully intend on altering the data in this Field. The detach call on the handle tells the handle to clone the memory and become the only reference to that new memory. We have no idea how many other modules may get the same input handle, so to modify it underneath them is a no no. <pre> TVField *in = dynamic_cast<TVField*>(field_handle.get_rep()); if (in == 0) { error("This Module only accepts Linear TetVol Fields with double data."); return; } </pre> Here we assure that the type of field we get is actually the one specific type we can handle. If we don't have input of this exact type, we call error with a message. This turns the status box on the module icon to red, and when you click it and open it, you will see the message. Then we return, since we do not know how to work on anything but that specific type. <pre> TVField::mesh_handle_type mh = in->get_typed_mesh(); TVMesh::Node::iterator iter; TVMesh::Node::iterator end; mh->begin(iter); mh->end(end); while (iter != end) { TVMesh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); TVField::value_type val; in->value(val, ni); cerr << "at point: " << node << "the input value is: " << val << endl; // Set the value to be 0.0; in->set_value(0.0, ni); ++iter; } </pre> Yay some meat. We have a valid pointer, so we can now iterate over all the nodes in this mesh. For example purposes, we print out the x,y,z point of each node, as well as the value stored at the node. We can do this because we know we have a linear basis, so we are guaranteed to have at least one data value at each node. After we print out what we got as input, we go ahead and set each node value to 0.0 as the name of our module suggests. The data is then sent downstream as before. === User Input === === Generic Algorithms === 1508 1507 2006-10-23T17:09:01Z Mjc 35 /* User Input */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === SCIRun::Examples::GetInputField Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputField.cc SCIRun/src/Dataflow/Modules/Examples/GetInputField.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputField.xml SCIRun/src/Dataflow/XML/GetInputField.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This example lives in the source tree as GetInputField, but if you are writing a module as we go, you could simply add the new bits as you go to your module. Now that we know how to execute, we would like to get some data passed into this module through its input port. First we need to let SCIRun know that we expect input and what type of input we expect. This happens in the XML file. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> </io> </pre> The io section of our component contains port information. We give it a name (important to remember as we ask for this port by name from our C code) and we also give it a datatype. In this case we want to and only will accept SCIRun::Field as an input. Now when we instantiate this module, it will be created with a Field input port. <pre> // Print the value of the input fields data pointer when we execute. void GetInputField::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputField must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputField module got data :" << field_handle.get_rep() << endl; } </pre> All data that pass through ports in SCIRun are passed using Handles. Our handles are reference counted locking handles. They are essentially smart pointers that delete the object they point to when no one has a reference to it anymore. First we declare an empty FieldHandle, then we ask for it to be filled with data from the input port named "InField". As you recall this is the exact string used in the xml file to declare the port name. get_input_handle does a number of things for you. If the last argument is true, then we require input data on this port (some ports are optional). get_input_handle then blocks waiting for data to arrive on the port, makes sure it is non NULL, and sets the handle appropriately. get_rep() is a method on the handle class itself. It returns the value of the underlying pointer. handles overload the -> operator, so that any calls made that way work as if the handle were an actual pointer to the object type. Using get_rep() we print out the value of the pointer to the shell, verifying that we indeed got some valid data. === Sending Output === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc SCIRun/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml SCIRun/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we simply add an output port, and send the same data we got as input along through the output port. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> <outputs> <port> <name>OutField</name> <datatype>SCIRun::Field</datatype> </port> </outputs> </io> </pre> We add the output port and name it, very similar to adding the input port. <pre> void GetInputFieldAndSendAsOutput::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputFieldAndSendAsOutput must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputFieldAndSendAsOutput module got data :" << field_handle.get_rep() << endl; send_output_handle("OutField", field_handle); } </pre> send_output_handle takes the exact string we declared the output port with in our xml file, and we send the handle to our field along through the output port. Now we know how to get data and send data, lets do something with this Field. === Changing Data Values === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetTetVolFieldValuesToZero.cc SCIRun/src/Dataflow/Modules/Examples/SetTetVolFieldValuesToZero.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetTetVolFieldValuesToZero.xml SCIRun/src/Dataflow/XML/SetTetVolFieldValuesToZero.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we get our first look at interfacing with a Field. The Field base class doesn't say much about what a field really is. Fields in SCIRun are designed somewhat like STL classes. There is a Field Concept, Mesh Concept, and Basis Concept. These guarantee certain interface to eachother such that they can be combined in a GenericField<> class via template arguments. This gives SCIRun great flexibility in Field creation. It also poses some logistical problems. For now we will assume the input to this module is a specific fully instantiated type. Later we will show how to deal with the vast array of possible types that 'could' come in through this Field port. <pre> typedef TetVolMesh<TetLinearLgn<Point> > TVMesh; typedef TetLinearLgn<double> DataBasis; typedef GenericField<TVMesh, DataBasis, vector<double> > TVField; </pre> This set of typedefs we create mostly for readablity. This is a Tetrahedral mesh with double data, with both data and mesh having a linear basis. <pre> // Must detach since we will be altering the input field. field_handle.detach(); </pre> The detach call here is required for valid Dataflow. We fully intend on altering the data in this Field. The detach call on the handle tells the handle to clone the memory and become the only reference to that new memory. We have no idea how many other modules may get the same input handle, so to modify it underneath them is a no no. <pre> TVField *in = dynamic_cast<TVField*>(field_handle.get_rep()); if (in == 0) { error("This Module only accepts Linear TetVol Fields with double data."); return; } </pre> Here we assure that the type of field we get is actually the one specific type we can handle. If we don't have input of this exact type, we call error with a message. This turns the status box on the module icon to red, and when you click it and open it, you will see the message. Then we return, since we do not know how to work on anything but that specific type. <pre> TVField::mesh_handle_type mh = in->get_typed_mesh(); TVMesh::Node::iterator iter; TVMesh::Node::iterator end; mh->begin(iter); mh->end(end); while (iter != end) { TVMesh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); TVField::value_type val; in->value(val, ni); cerr << "at point: " << node << "the input value is: " << val << endl; // Set the value to be 0.0; in->set_value(0.0, ni); ++iter; } </pre> Yay some meat. We have a valid pointer, so we can now iterate over all the nodes in this mesh. For example purposes, we print out the x,y,z point of each node, as well as the value stored at the node. We can do this because we know we have a linear basis, so we are guaranteed to have at least one data value at each node. After we print out what we got as input, we go ahead and set each node value to 0.0 as the name of our module suggests. The data is then sent downstream as before. === User Input === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetTetVolFieldValues.cc SCIRun/src/Dataflow/Modules/Examples/SetTetVolFieldValues.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetTetVolFieldValues.xml SCIRun/src/Dataflow/XML/SetTetVolFieldValues.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/SetTetVolFieldDataValues.tcl SCIRun/branches/cibc/src/Dataflow/GUI/SetTetVolFieldDataValues.tcl] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk] Setting values to 0.0 may not be what we always want to do. Lets suppose the user would like to decide what value to set from a dialog. This example introduces a new file type. A tcl file, that follows the module ui convention, added to the sub.mk makefile fragment, will now trigger a UI button to show up on your instantiated module icon. If it does not, you forgot to add it to the makefile, or you mistyped the name of the class which follows a Package_Category_ModuleName convention. <pre> method ui {} { set w .ui[modname] if {[winfo exists $w]} { return } toplevel $w frame $w.f pack $w.f -padx 2 -pady 2 -side top -expand yes frame $w.f.options pack $w.f.options -side top -expand yes iwidgets::entryfield $w.f.options.format -labeltext "New Value:" \ -textvariable $this-newval pack $w.f.options.format -side top -expand yes -fill x makeSciButtonPanel $w.f $w $this moveToCursor $w pack $w.f -expand 1 -fill x } </pre> The ui method in the .tcl file is what gets called when you click on the UI button. In this case we have an entryfield whose input is bound to a variable '''$this-newval''' which is important when we hook this up on the 'C' side. <pre> class SetTetVolFieldDataValues : public Module { public: SetTetVolFieldDataValues(GuiContext*); virtual ~SetTetVolFieldDataValues(); virtual void execute(); private: GuiDouble newval_; }; </pre> Added to our class declaration is a GuiDouble. When we initialize this at construction time, we marry it to the tcl side variable of the specified name. We will be interpreting the input value as a double. <pre> SetTetVolFieldDataValues::SetTetVolFieldDataValues(GuiContext* ctx) : Module("SetTetVolFieldDataValues", ctx, Source, "Examples", "SCIRun"), newval_(get_ctx()->subVar("newval"), 1.0) { } </pre> Using the GuiContext object, we marry our GuiDouble to the tcl variable newval. $this- on the tcl side scopes our variable under our unique module id. The string we pass to subVar must match exactly the string after $this- on the tcl side. The second argument is the initializer. <pre> while (iter != end) { TVMesh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); TVField::value_type val; in->value(val, ni); cerr << "at point: " << node << " the input value is: " << val << endl; // Set the value to be the value from the gui; in->set_value(newval_.get(), ni); ++iter; } </pre> Now in our loop, we ask for the value from the UI entry box that is coupled to our GuiDouble newval_. We call .get() on the GuiVar expecting a double since we know it is a GuiDouble. This value is now used to set the field variable value at each node. === Generic Algorithms === 1509 1508 2006-10-23T17:39:17Z Mjc 35 /* Generic Algorithms */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === SCIRun::Examples::GetInputField Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputField.cc SCIRun/src/Dataflow/Modules/Examples/GetInputField.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputField.xml SCIRun/src/Dataflow/XML/GetInputField.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This example lives in the source tree as GetInputField, but if you are writing a module as we go, you could simply add the new bits as you go to your module. Now that we know how to execute, we would like to get some data passed into this module through its input port. First we need to let SCIRun know that we expect input and what type of input we expect. This happens in the XML file. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> </io> </pre> The io section of our component contains port information. We give it a name (important to remember as we ask for this port by name from our C code) and we also give it a datatype. In this case we want to and only will accept SCIRun::Field as an input. Now when we instantiate this module, it will be created with a Field input port. <pre> // Print the value of the input fields data pointer when we execute. void GetInputField::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputField must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputField module got data :" << field_handle.get_rep() << endl; } </pre> All data that pass through ports in SCIRun are passed using Handles. Our handles are reference counted locking handles. They are essentially smart pointers that delete the object they point to when no one has a reference to it anymore. First we declare an empty FieldHandle, then we ask for it to be filled with data from the input port named "InField". As you recall this is the exact string used in the xml file to declare the port name. get_input_handle does a number of things for you. If the last argument is true, then we require input data on this port (some ports are optional). get_input_handle then blocks waiting for data to arrive on the port, makes sure it is non NULL, and sets the handle appropriately. get_rep() is a method on the handle class itself. It returns the value of the underlying pointer. handles overload the -> operator, so that any calls made that way work as if the handle were an actual pointer to the object type. Using get_rep() we print out the value of the pointer to the shell, verifying that we indeed got some valid data. === Sending Output === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc SCIRun/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml SCIRun/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we simply add an output port, and send the same data we got as input along through the output port. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> <outputs> <port> <name>OutField</name> <datatype>SCIRun::Field</datatype> </port> </outputs> </io> </pre> We add the output port and name it, very similar to adding the input port. <pre> void GetInputFieldAndSendAsOutput::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputFieldAndSendAsOutput must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputFieldAndSendAsOutput module got data :" << field_handle.get_rep() << endl; send_output_handle("OutField", field_handle); } </pre> send_output_handle takes the exact string we declared the output port with in our xml file, and we send the handle to our field along through the output port. Now we know how to get data and send data, lets do something with this Field. === Changing Data Values === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetTetVolFieldValuesToZero.cc SCIRun/src/Dataflow/Modules/Examples/SetTetVolFieldValuesToZero.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetTetVolFieldValuesToZero.xml SCIRun/src/Dataflow/XML/SetTetVolFieldValuesToZero.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we get our first look at interfacing with a Field. The Field base class doesn't say much about what a field really is. Fields in SCIRun are designed somewhat like STL classes. There is a Field Concept, Mesh Concept, and Basis Concept. These guarantee certain interface to eachother such that they can be combined in a GenericField<> class via template arguments. This gives SCIRun great flexibility in Field creation. It also poses some logistical problems. For now we will assume the input to this module is a specific fully instantiated type. Later we will show how to deal with the vast array of possible types that 'could' come in through this Field port. <pre> typedef TetVolMesh<TetLinearLgn<Point> > TVMesh; typedef TetLinearLgn<double> DataBasis; typedef GenericField<TVMesh, DataBasis, vector<double> > TVField; </pre> This set of typedefs we create mostly for readablity. This is a Tetrahedral mesh with double data, with both data and mesh having a linear basis. <pre> // Must detach since we will be altering the input field. field_handle.detach(); </pre> The detach call here is required for valid Dataflow. We fully intend on altering the data in this Field. The detach call on the handle tells the handle to clone the memory and become the only reference to that new memory. We have no idea how many other modules may get the same input handle, so to modify it underneath them is a no no. <pre> TVField *in = dynamic_cast<TVField*>(field_handle.get_rep()); if (in == 0) { error("This Module only accepts Linear TetVol Fields with double data."); return; } </pre> Here we assure that the type of field we get is actually the one specific type we can handle. If we don't have input of this exact type, we call error with a message. This turns the status box on the module icon to red, and when you click it and open it, you will see the message. Then we return, since we do not know how to work on anything but that specific type. <pre> TVField::mesh_handle_type mh = in->get_typed_mesh(); TVMesh::Node::iterator iter; TVMesh::Node::iterator end; mh->begin(iter); mh->end(end); while (iter != end) { TVMesh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); TVField::value_type val; in->value(val, ni); cerr << "at point: " << node << "the input value is: " << val << endl; // Set the value to be 0.0; in->set_value(0.0, ni); ++iter; } </pre> Yay some meat. We have a valid pointer, so we can now iterate over all the nodes in this mesh. For example purposes, we print out the x,y,z point of each node, as well as the value stored at the node. We can do this because we know we have a linear basis, so we are guaranteed to have at least one data value at each node. After we print out what we got as input, we go ahead and set each node value to 0.0 as the name of our module suggests. The data is then sent downstream as before. === User Input === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetTetVolFieldValues.cc SCIRun/src/Dataflow/Modules/Examples/SetTetVolFieldValues.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetTetVolFieldValues.xml SCIRun/src/Dataflow/XML/SetTetVolFieldValues.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/SetTetVolFieldDataValues.tcl SCIRun/branches/cibc/src/Dataflow/GUI/SetTetVolFieldDataValues.tcl] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk] Setting values to 0.0 may not be what we always want to do. Lets suppose the user would like to decide what value to set from a dialog. This example introduces a new file type. A tcl file, that follows the module ui convention, added to the sub.mk makefile fragment, will now trigger a UI button to show up on your instantiated module icon. If it does not, you forgot to add it to the makefile, or you mistyped the name of the class which follows a Package_Category_ModuleName convention. <pre> method ui {} { set w .ui[modname] if {[winfo exists $w]} { return } toplevel $w frame $w.f pack $w.f -padx 2 -pady 2 -side top -expand yes frame $w.f.options pack $w.f.options -side top -expand yes iwidgets::entryfield $w.f.options.format -labeltext "New Value:" \ -textvariable $this-newval pack $w.f.options.format -side top -expand yes -fill x makeSciButtonPanel $w.f $w $this moveToCursor $w pack $w.f -expand 1 -fill x } </pre> The ui method in the .tcl file is what gets called when you click on the UI button. In this case we have an entryfield whose input is bound to a variable '''$this-newval''' which is important when we hook this up on the 'C' side. <pre> class SetTetVolFieldDataValues : public Module { public: SetTetVolFieldDataValues(GuiContext*); virtual ~SetTetVolFieldDataValues(); virtual void execute(); private: GuiDouble newval_; }; </pre> Added to our class declaration is a GuiDouble. When we initialize this at construction time, we marry it to the tcl side variable of the specified name. We will be interpreting the input value as a double. <pre> SetTetVolFieldDataValues::SetTetVolFieldDataValues(GuiContext* ctx) : Module("SetTetVolFieldDataValues", ctx, Source, "Examples", "SCIRun"), newval_(get_ctx()->subVar("newval"), 1.0) { } </pre> Using the GuiContext object, we marry our GuiDouble to the tcl variable newval. $this- on the tcl side scopes our variable under our unique module id. The string we pass to subVar must match exactly the string after $this- on the tcl side. The second argument is the initializer. <pre> while (iter != end) { TVMesh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); TVField::value_type val; in->value(val, ni); cerr << "at point: " << node << " the input value is: " << val << endl; // Set the value to be the value from the gui; in->set_value(newval_.get(), ni); ++iter; } </pre> Now in our loop, we ask for the value from the UI entry box that is coupled to our GuiDouble newval_. We call .get() on the GuiVar expecting a double since we know it is a GuiDouble. This value is now used to set the field variable value at each node. === Generic Algorithms === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetFieldDataValues.h SCIRun/src/Dataflow/Modules/Examples/SetFieldDataValues.h] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetFieldDataValues.cc SCIRun/src/Dataflow/Modules/Examples/SetFieldDataValues.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetFieldDataValues.xml SCIRun/src/Dataflow/XML/SetFieldDataValues.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/SetFieldDataValues.tcl SCIRun/branches/cibc/src/Dataflow/GUI/SetFieldDataValues.tcl] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk] This example shows how we can generically handle any and all Fields as input. We have augmented the RTTI from C++ such that we can compile algorithms at run time that are exactly typed on the input field. The algorithms use the Concepts involved to interface with the objects. We introduce a new file, a .h file to contain the algorithm to be compiled. <pre> class SetFieldDataValuesAlgoBase : public DynamicAlgoBase { public: virtual FieldHandle execute(ProgressReporter *, FieldHandle, double) = 0; //! support the dynamically compiled algorithm concept static CompileInfoHandle get_compile_info(const TypeDescription *td); }; template <class Fld> class SetFieldDataValuesT : public SetFieldDataValuesAlgoBase { public: //! virtual interface. virtual FieldHandle execute(ProgressReporter *, FieldHandle, double); }; </pre> The base class inherits from DynamicAlgoBase. It is this type we will get a handle to in our module execute. The virtual method execute is our entry into our dynamically compiled algorithm. We call it execute by convention but you can call it whatever you wish. This is a class like any other, have as many methods, or data as you wish in the class. The second declaration is the templated version which inherits from our base class and provides the overloaded virtual. It has one template parameter, in this case which we expect to be a Field. <pre> template <class Fld> FieldHandle SetFieldDataValuesT<Fld>::execute(ProgressReporter *reporter, FieldHandle ifh, double newval) { //Must detach since we will be altering the input field. ifh.detach(); Fld* in = dynamic_cast<Fld*>(ifh.get_rep()); if (! in) { cerr << "Input field type does not match algorithm paramter type." << endl; return 0; } typedef typename Fld::mesh_type Msh; typename Fld::mesh_handle_type mh = in->get_typed_mesh(); typename Msh::Node::iterator iter; typename Msh::Node::iterator end; mh->synchronize(Mesh::NODES_E); mh->begin(iter); mh->end(end); while (iter != end) { typename Msh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); typename Fld::value_type val; in->value(val, ni); cerr << "at point: " << node << " the input value is: " << val << endl; // Set the value to be the value from the gui; in->set_value(newval, ni); ++iter; } return ifh; } </pre> This should look pretty familiar at this point, except that no where do we know the exact type of the field. We pass in the new value we want to set as a method parameter, but otherwise it is roughly the same code as before. Now we want to instantiate a specific instance of this algorithm based upon the input field type, so lets go to the .cc file. <pre> const TypeDescription *ftd = field_handle->get_type_description(); CompileInfoHandle ci = SetFieldDataValuesAlgoBase::get_compile_info(ftd); Handle<SetFieldDataValuesAlgoBase> algo; if (!DynamicCompilation::compile(ci, algo, this)) return; FieldHandle out_field_handle(algo->execute(this, field_handle, newval_.get())); </pre> Here we use our augmented RTTI to get all the strings required to write out a .cc file with the algorithm instantiation in it. We do this with get_type_decription() on the input field. When we call compile we get our handle algo filled up. A .cc instantiation file is created, compiled into a small library, loaded into the system, and instantiated. It is then set in the handle algo. If you have compile errors the function will fail, and you will see the errors from your status box. Finally we call our newly compiled algorithm, which has been instantiated for the input field type. <pre> CompileInfoHandle SetFieldDataValuesAlgoBase::get_compile_info(const TypeDescription *td) { // use cc_to_h if this is in the .cc file, otherwise just __FILE__ static const string include_path(TypeDescription::cc_to_h(__FILE__)); static const string template_class_name("SetFieldDataValuesT"); static const string base_class_name("SetFieldDataValuesAlgoBase"); CompileInfo *rval = scinew CompileInfo(template_class_name + "." + td->get_filename() + ".", base_class_name, template_class_name, td->get_name()); rval->add_include(include_path); td->fill_compile_info(rval); return rval; } </pre> get_compile_info we provide in this file as well. It sets up some more strings, that let us know where files are etc. and fills up the CompileInfo object with all the strings needed to write an instantiation file. 3233 1509 2006-10-23T17:40:03Z Mjc 35 /* User Input */ wikitext text/x-wiki == Module Writing Tutorial == In your working copy of source code exists a few example modules designed to gradually introduce you to the structures and mechanisms used in all module writing. modules in SCIRun are specified by '''Package::Category::ModuleName''' === Packages === Packages are the SCIRun plugin mechanism, and each Package gets its own menu item on the Network Editor. Core modules in SCIRun live in the SCIRun Package. In your working tree, the SCIRun Package corresponds to everything under the SCIRun/src/Dataflow/Modules directory. All other Packages live in SCIRun/src/Packages. === Categories === Categories are the directories under Modules. These are also reflected in the menu item, and should contain modules that share some common ground defined by the category. === Modules === Finally under each Category directory are the Modules contained within them. Each module has a .cc file with the same name as the module. == Examples == To help the novice module writer understand the basics of creating new modules, there is the example category. In it are actual modules that can execute and === "Hello World!" -- SCIRun style. === SCIRun::Examples::PrintHelloWorldToScreen Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc SCIRun/src/Dataflow/Modules/Examples/PrintHelloWorldToScreen.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/PrintHelloWorldToScreen.xml SCIRun/src/Dataflow/XML/PrintHelloWorldToScreen.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This is the most basic of modules. Each module must have an xml file that describes it. This xml file gets parsed at startup, and lets SCIRun know it is available. SCIRun then builds menu items based on available modules. <pre> class PrintHelloWorldToScreen : public Module { public: PrintHelloWorldToScreen(GuiContext*); virtual ~PrintHelloWorldToScreen(); virtual void execute(); }; </pre> Our module inherits from Module base class, and provides an execute function. Note that it is a class like any other, and that everytime the module executes, the execute method will be called by the scheduler. Each module runs in its own thread, so be careful of static members. <pre> DECLARE_MAKER(PrintHelloWorldToScreen) </pre> The DECLARE_MAKER macro simply creates a maker function that creates an instance of this module. It gets called when you add an instance of the module to your Network Editor. This macro keeps the maker functions uniform and is a convenience for the module writer. <pre> // Print Hello World! when we execute. void PrintHelloWorldToScreen::execute() { cerr << "Hello World!" << endl; } </pre> Here we have the definition of our execute method. This is where interesting things happen -- usually. For now we just print "Hello World!" to the shell you ran from. Pretty simple so far, but you know are familiar with a few of the files and how you get your code to execute. Your next question will be how do I get some data into this execute method... === Getting Input === SCIRun::Examples::GetInputField Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputField.cc SCIRun/src/Dataflow/Modules/Examples/GetInputField.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputField.xml SCIRun/src/Dataflow/XML/GetInputField.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] This example lives in the source tree as GetInputField, but if you are writing a module as we go, you could simply add the new bits as you go to your module. Now that we know how to execute, we would like to get some data passed into this module through its input port. First we need to let SCIRun know that we expect input and what type of input we expect. This happens in the XML file. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> </io> </pre> The io section of our component contains port information. We give it a name (important to remember as we ask for this port by name from our C code) and we also give it a datatype. In this case we want to and only will accept SCIRun::Field as an input. Now when we instantiate this module, it will be created with a Field input port. <pre> // Print the value of the input fields data pointer when we execute. void GetInputField::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputField must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputField module got data :" << field_handle.get_rep() << endl; } </pre> All data that pass through ports in SCIRun are passed using Handles. Our handles are reference counted locking handles. They are essentially smart pointers that delete the object they point to when no one has a reference to it anymore. First we declare an empty FieldHandle, then we ask for it to be filled with data from the input port named "InField". As you recall this is the exact string used in the xml file to declare the port name. get_input_handle does a number of things for you. If the last argument is true, then we require input data on this port (some ports are optional). get_input_handle then blocks waiting for data to arrive on the port, makes sure it is non NULL, and sets the handle appropriately. get_rep() is a method on the handle class itself. It returns the value of the underlying pointer. handles overload the -> operator, so that any calls made that way work as if the handle were an actual pointer to the object type. Using get_rep() we print out the value of the pointer to the shell, verifying that we indeed got some valid data. === Sending Output === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc SCIRun/src/Dataflow/Modules/Examples/GetInputFieldAndSendAsOutput.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml SCIRun/src/Dataflow/XML/GetInputFieldAndSendAsOutput.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we simply add an output port, and send the same data we got as input along through the output port. <pre> <io> <inputs lastportdynamic="no"> <port> <name>InField</name> <datatype>SCIRun::Field</datatype> </port> </inputs> <outputs> <port> <name>OutField</name> <datatype>SCIRun::Field</datatype> </port> </outputs> </io> </pre> We add the output port and name it, very similar to adding the input port. <pre> void GetInputFieldAndSendAsOutput::execute() { FieldHandle field_handle; if (! get_input_handle("InField", field_handle, true)) { error("GetInputFieldAndSendAsOutput must have a SCIRun::Field as input to continue."); return; } cerr << "GetInputFieldAndSendAsOutput module got data :" << field_handle.get_rep() << endl; send_output_handle("OutField", field_handle); } </pre> send_output_handle takes the exact string we declared the output port with in our xml file, and we send the handle to our field along through the output port. Now we know how to get data and send data, lets do something with this Field. === Changing Data Values === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetTetVolFieldValuesToZero.cc SCIRun/src/Dataflow/Modules/Examples/SetTetVolFieldValuesToZero.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetTetVolFieldValuesToZero.xml SCIRun/src/Dataflow/XML/SetTetVolFieldValuesToZero.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] In this example we get our first look at interfacing with a Field. The Field base class doesn't say much about what a field really is. Fields in SCIRun are designed somewhat like STL classes. There is a Field Concept, Mesh Concept, and Basis Concept. These guarantee certain interface to eachother such that they can be combined in a GenericField<> class via template arguments. This gives SCIRun great flexibility in Field creation. It also poses some logistical problems. For now we will assume the input to this module is a specific fully instantiated type. Later we will show how to deal with the vast array of possible types that 'could' come in through this Field port. <pre> typedef TetVolMesh<TetLinearLgn<Point> > TVMesh; typedef TetLinearLgn<double> DataBasis; typedef GenericField<TVMesh, DataBasis, vector<double> > TVField; </pre> This set of typedefs we create mostly for readablity. This is a Tetrahedral mesh with double data, with both data and mesh having a linear basis. <pre> // Must detach since we will be altering the input field. field_handle.detach(); </pre> The detach call here is required for valid Dataflow. We fully intend on altering the data in this Field. The detach call on the handle tells the handle to clone the memory and become the only reference to that new memory. We have no idea how many other modules may get the same input handle, so to modify it underneath them is a no no. <pre> TVField *in = dynamic_cast<TVField*>(field_handle.get_rep()); if (in == 0) { error("This Module only accepts Linear TetVol Fields with double data."); return; } </pre> Here we assure that the type of field we get is actually the one specific type we can handle. If we don't have input of this exact type, we call error with a message. This turns the status box on the module icon to red, and when you click it and open it, you will see the message. Then we return, since we do not know how to work on anything but that specific type. <pre> TVField::mesh_handle_type mh = in->get_typed_mesh(); TVMesh::Node::iterator iter; TVMesh::Node::iterator end; mh->begin(iter); mh->end(end); while (iter != end) { TVMesh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); TVField::value_type val; in->value(val, ni); cerr << "at point: " << node << "the input value is: " << val << endl; // Set the value to be 0.0; in->set_value(0.0, ni); ++iter; } </pre> Yay some meat. We have a valid pointer, so we can now iterate over all the nodes in this mesh. For example purposes, we print out the x,y,z point of each node, as well as the value stored at the node. We can do this because we know we have a linear basis, so we are guaranteed to have at least one data value at each node. After we print out what we got as input, we go ahead and set each node value to 0.0 as the name of our module suggests. The data is then sent downstream as before. === User Input === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetTetVolFieldDataValues.cc SCIRun/src/Dataflow/Modules/Examples/SetTetVolFieldDataValues.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetTetVolFieldDataValues.xml SCIRun/src/Dataflow/XML/SetTetVolFieldDataValues.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/SetTetVolFieldDataValues.tcl SCIRun/branches/cibc/src/Dataflow/GUI/SetTetVolFieldDataValues.tcl] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk] Setting values to 0.0 may not be what we always want to do. Lets suppose the user would like to decide what value to set from a dialog. This example introduces a new file type. A tcl file, that follows the module ui convention, added to the sub.mk makefile fragment, will now trigger a UI button to show up on your instantiated module icon. If it does not, you forgot to add it to the makefile, or you mistyped the name of the class which follows a Package_Category_ModuleName convention. <pre> method ui {} { set w .ui[modname] if {[winfo exists $w]} { return } toplevel $w frame $w.f pack $w.f -padx 2 -pady 2 -side top -expand yes frame $w.f.options pack $w.f.options -side top -expand yes iwidgets::entryfield $w.f.options.format -labeltext "New Value:" \ -textvariable $this-newval pack $w.f.options.format -side top -expand yes -fill x makeSciButtonPanel $w.f $w $this moveToCursor $w pack $w.f -expand 1 -fill x } </pre> The ui method in the .tcl file is what gets called when you click on the UI button. In this case we have an entryfield whose input is bound to a variable '''$this-newval''' which is important when we hook this up on the 'C' side. <pre> class SetTetVolFieldDataValues : public Module { public: SetTetVolFieldDataValues(GuiContext*); virtual ~SetTetVolFieldDataValues(); virtual void execute(); private: GuiDouble newval_; }; </pre> Added to our class declaration is a GuiDouble. When we initialize this at construction time, we marry it to the tcl side variable of the specified name. We will be interpreting the input value as a double. <pre> SetTetVolFieldDataValues::SetTetVolFieldDataValues(GuiContext* ctx) : Module("SetTetVolFieldDataValues", ctx, Source, "Examples", "SCIRun"), newval_(get_ctx()->subVar("newval"), 1.0) { } </pre> Using the GuiContext object, we marry our GuiDouble to the tcl variable newval. $this- on the tcl side scopes our variable under our unique module id. The string we pass to subVar must match exactly the string after $this- on the tcl side. The second argument is the initializer. <pre> while (iter != end) { TVMesh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); TVField::value_type val; in->value(val, ni); cerr << "at point: " << node << " the input value is: " << val << endl; // Set the value to be the value from the gui; in->set_value(newval_.get(), ni); ++iter; } </pre> Now in our loop, we ask for the value from the UI entry box that is coupled to our GuiDouble newval_. We call .get() on the GuiVar expecting a double since we know it is a GuiDouble. This value is now used to set the field variable value at each node. === Generic Algorithms === Files: * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetFieldDataValues.h SCIRun/src/Dataflow/Modules/Examples/SetFieldDataValues.h] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/SetFieldDataValues.cc SCIRun/src/Dataflow/Modules/Examples/SetFieldDataValues.cc] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/XML/SetFieldDataValues.xml SCIRun/src/Dataflow/XML/SetFieldDataValues.xml] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/SetFieldDataValues.tcl SCIRun/branches/cibc/src/Dataflow/GUI/SetFieldDataValues.tcl] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/Modules/Examples/sub.mk SCIRun/src/Dataflow/Modules/Examples/sub.mk] * [https://code.sci.utah.edu/svn/SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk SCIRun/branches/cibc/src/Dataflow/GUI/sub.mk] This example shows how we can generically handle any and all Fields as input. We have augmented the RTTI from C++ such that we can compile algorithms at run time that are exactly typed on the input field. The algorithms use the Concepts involved to interface with the objects. We introduce a new file, a .h file to contain the algorithm to be compiled. <pre> class SetFieldDataValuesAlgoBase : public DynamicAlgoBase { public: virtual FieldHandle execute(ProgressReporter *, FieldHandle, double) = 0; //! support the dynamically compiled algorithm concept static CompileInfoHandle get_compile_info(const TypeDescription *td); }; template <class Fld> class SetFieldDataValuesT : public SetFieldDataValuesAlgoBase { public: //! virtual interface. virtual FieldHandle execute(ProgressReporter *, FieldHandle, double); }; </pre> The base class inherits from DynamicAlgoBase. It is this type we will get a handle to in our module execute. The virtual method execute is our entry into our dynamically compiled algorithm. We call it execute by convention but you can call it whatever you wish. This is a class like any other, have as many methods, or data as you wish in the class. The second declaration is the templated version which inherits from our base class and provides the overloaded virtual. It has one template parameter, in this case which we expect to be a Field. <pre> template <class Fld> FieldHandle SetFieldDataValuesT<Fld>::execute(ProgressReporter *reporter, FieldHandle ifh, double newval) { //Must detach since we will be altering the input field. ifh.detach(); Fld* in = dynamic_cast<Fld*>(ifh.get_rep()); if (! in) { cerr << "Input field type does not match algorithm paramter type." << endl; return 0; } typedef typename Fld::mesh_type Msh; typename Fld::mesh_handle_type mh = in->get_typed_mesh(); typename Msh::Node::iterator iter; typename Msh::Node::iterator end; mh->synchronize(Mesh::NODES_E); mh->begin(iter); mh->end(end); while (iter != end) { typename Msh::Node::index_type ni = *iter; Point node; mh->get_center(node, ni); typename Fld::value_type val; in->value(val, ni); cerr << "at point: " << node << " the input value is: " << val << endl; // Set the value to be the value from the gui; in->set_value(newval, ni); ++iter; } return ifh; } </pre> This should look pretty familiar at this point, except that no where do we know the exact type of the field. We pass in the new value we want to set as a method parameter, but otherwise it is roughly the same code as before. Now we want to instantiate a specific instance of this algorithm based upon the input field type, so lets go to the .cc file. <pre> const TypeDescription *ftd = field_handle->get_type_description(); CompileInfoHandle ci = SetFieldDataValuesAlgoBase::get_compile_info(ftd); Handle<SetFieldDataValuesAlgoBase> algo; if (!DynamicCompilation::compile(ci, algo, this)) return; FieldHandle out_field_handle(algo->execute(this, field_handle, newval_.get())); </pre> Here we use our augmented RTTI to get all the strings required to write out a .cc file with the algorithm instantiation in it. We do this with get_type_decription() on the input field. When we call compile we get our handle algo filled up. A .cc instantiation file is created, compiled into a small library, loaded into the system, and instantiated. It is then set in the handle algo. If you have compile errors the function will fail, and you will see the errors from your status box. Finally we call our newly compiled algorithm, which has been instantiated for the input field type. <pre> CompileInfoHandle SetFieldDataValuesAlgoBase::get_compile_info(const TypeDescription *td) { // use cc_to_h if this is in the .cc file, otherwise just __FILE__ static const string include_path(TypeDescription::cc_to_h(__FILE__)); static const string template_class_name("SetFieldDataValuesT"); static const string base_class_name("SetFieldDataValuesAlgoBase"); CompileInfo *rval = scinew CompileInfo(template_class_name + "." + td->get_filename() + ".", base_class_name, template_class_name, td->get_name()); rval->add_include(include_path); td->fill_compile_info(rval); return rval; } </pre> get_compile_info we provide in this file as well. It sets up some more strings, that let us know where files are etc. and fills up the CompileInfo object with all the strings needed to write an instantiation file. CIBC:Documentation:SCIRun:ReleaseNotes:3.0 0 1088 1514 1512 2006-10-25T20:58:09Z Macleod 3 /* Release Notes for SCIRun/BioPSE Version 1.26.0 */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 1.26.0 == :SCIRun Version 3.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. ====Modules==== * All modules have been given a new name. ====Documentation==== * Documentation has been merged over into a Wiki, so users can help updating and documenting the software system. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- [[CIBC:Documentation:SCIRun|Go back to SCIRun Documentation]] 1519 1514 2006-10-26T20:05:56Z Jeroen 19 /* Release Notes for SCIRun/BioPSE Version 1.26.0 */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 3.0 == :SCIRun Version 3.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. ====Modules==== * All modules have been given a new name. ====Documentation==== * Documentation has been merged over into a Wiki, so users can help updating and documenting the software system. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- [[CIBC:Documentation:SCIRun|Go back to SCIRun Documentation]] 1524 1519 2006-10-26T20:15:36Z Jeroen 19 /* Bug fixes */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 3.0 == :SCIRun Version 3.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. ====Modules==== * All modules have been given a new name. ====Documentation==== * Documentation has been merged over into a Wiki, so users can help updating and documenting the software system. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] 1525 1524 2006-10-26T21:33:13Z Jeroen 19 /* Supported systems */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 3.0 == :SCIRun Version 3.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules, which is supported by OS 10.4 and later) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. ====Modules==== * All modules have been given a new name. ====Documentation==== * Documentation has been merged over into a Wiki, so users can help updating and documenting the software system. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] 1526 1525 2006-10-26T21:33:47Z Jeroen 19 /* Modeling */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 3.0 == :SCIRun Version 3.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules, which is supported by OS 10.4 and later) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class available in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. ====Modules==== * All modules have been given a new name. ====Documentation==== * Documentation has been merged over into a Wiki, so users can help updating and documenting the software system. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] 1869 1526 2006-10-26T21:35:18Z Jeroen 19 /* Network Editor */ wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 3.0 == :SCIRun Version 3.0 :Release date: November ??, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules, which is supported by OS 10.4 and later) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class available in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. * Save As now displays the current name. * The network fileformant has been ported to XML. The new network files are now called .srn instead of the old .net files. ====Modules==== * All modules have been given a new name. ====Documentation==== * Documentation has been merged over into a Wiki, so users can help updating and documenting the software system. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] CIBC:Documentation:SCIRun 0 1087 1515 1513 2006-10-26T20:05:09Z Jeroen 19 /* '''General Documentation''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE and PowerApps Version 1.26'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:1.26|Release Notes Version 3.0]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== ---- [[CIBC:Documentation|Go back to Documentation]] 1520 1515 2006-10-26T20:06:24Z Jeroen 19 /* '''General Documentation''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE and PowerApps Version 1.26'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:3.0|Release Notes Version 3.0]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== ---- [[CIBC:Documentation|Go back to Documentation]] 1521 1520 2006-10-26T20:16:05Z Jeroen 19 /* '''BioPSE PowerApps''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE and PowerApps Version 1.26'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:3.0|Release Notes Version 3.0]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== ---- Go back to [[CIBC:Documentation|Documentation]] 1626 1521 2006-10-26T20:16:20Z Jeroen 19 /* '''SCIRun/BioPSE and PowerApps Version 1.26''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE and PowerApps Version 3.0'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:3.0|Release Notes Version 3.0]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Manual]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== ---- Go back to [[CIBC:Documentation|Documentation]] CIBC:Documentation:SCIRun:ReleaseNotes:1.26 0 1129 3268 2006-10-26T20:05:27Z Jeroen 19 CIBC:Documentation:SCIRun:ReleaseNotes:1.26 moved to CIBC:Documentation:SCIRun:ReleaseNotes:3.0 wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:ReleaseNotes:3.0]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle 0 1101 1517 1516 2006-10-26T20:10:42Z Jeroen 19 /* Recent Changes */ wikitext text/x-wiki =='''GetPathsFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'path' object from a bundle. ====Detailed Description==== This module retrieves a 'path' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'path' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CICB:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 1560 1517 2006-10-26T20:14:15Z Jeroen 19 /* Recent Changes */ wikitext text/x-wiki =='''GetPathsFromBundle'''== ===Information=== ;Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''1.26''' ---- ===Description=== ====Summary==== This module retrieves a 'path' object from a bundle. ====Detailed Description==== This module retrieves a 'path' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'path' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference 0 1089 1543 1518 2006-10-26T20:15:03Z Jeroen 19 /* '''Module Reference''' */ wikitext text/x-wiki =='''Module Reference'''== '''SCIRun''' ;[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun Modules]] :Reference documentation on all modules inside the Core of SCIRun '''Packages (stable)''' ;[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE Modules]] :This extension package has modules for doing bioelectic field calculations ;[[CIBC:Documentation:SCIRun:Reference:Insight|Insight Modules]] :This extension package contains an interface to the Insight ToolKit ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface Modules]] :This extension package contains an interface to Matlab ;[[CIBC:Documentation:SCIRun:Reference:Teem|Teem Modules]] :This extension package contains an interface to the Teem library '''Packages (under development)''' ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CarioWaveInterface Modules]] :This extension package contains an interface to the CardioWave simulator ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation Modules]] :A sandbox containing modeling and meshing tools, that ultimately will be integrated in the core of SCIRun ---- ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:MatlabInterface 0 1090 1576 1522 2006-10-26T20:17:21Z Jeroen 19 /* '''DataIO''' */ wikitext text/x-wiki =='''MatlabInterface Reference'''== ==='''Package Description'''=== This package adds an interface to Matlab to SCIRun. The package contains an interface, which allows for small Matlab scripts to be inserted into SCIRun's dataflow networks and a converter to import and export SCIRun dataflow objects as Matlab files. ---- ==='''Module Reference'''=== ===='''Interface'''==== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab|InterfaceWithMatlab]] :Module for interactively communicating with Matlab ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlabViaBundles|InterfaceWithMatlabViaBundles]] :Module for interactively communicating with Matlab using Bundles ===='''DataIO'''==== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:SCIRun 0 1095 1527 1523 2006-10-26T20:18:03Z Jeroen 19 /* '''Visualization''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a 'bundle' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a 'colormap2' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a 'colormap' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a 'field' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a 'matrix' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a 'nrrd' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a 'path' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a 'string' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module adds a 'bundle' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module adds a 'colormap2' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module adds a 'colormap' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module adds a 'field' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module adds a 'matrix' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module adds a 'nrrd' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module adds a 'path' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module adds a 'string' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a bundle from disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :The ColorMap Read a persistent colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :The ColorMap2 Read a persistent 2d colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :The ReadPath module reads a persistent camera path from a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a bundle to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :Saves persistent field objects received from upstream modules. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :The WriteMatrix modules saves a persistent representation of a matrix to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :The WritePath module saves persistent representation of a path to a file. ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|AppendMatrix]] :Composite a matrix from components. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1674 1527 2006-10-27T17:23:09Z Jeroen 19 wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a 'bundle' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a 'colormap2' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a 'colormap' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a 'field' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a 'matrix' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a 'nrrd' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a 'path' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a 'string' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module adds a 'bundle' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module adds a 'colormap2' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module adds a 'colormap' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module adds a 'field' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module adds a 'matrix' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module adds a 'nrrd' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module adds a 'path' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module adds a 'string' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a bundle from disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :The ColorMap Read a persistent colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :The ColorMap2 Read a persistent 2d colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :The ReadPath module reads a persistent camera path from a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a bundle to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :Saves persistent field objects received from upstream modules. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :The WriteMatrix modules saves a persistent representation of a matrix to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :The WritePath module saves persistent representation of a path to a file. ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|AppendMatrix]] :Composite a matrix from components. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle 0 1096 1663 1528 2006-10-27T17:26:00Z Jeroen 19 wikitext text/x-wiki =='''GetBundlesFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a 'bundle' object from a bundle. ====Detailed Description==== This module retrieves a 'bundle' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'bundle' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:SoftwareDesign 0 1130 1646 2006-10-27T17:35:50Z Jeroen 19 wikitext text/x-wiki == Software Design == ===Projects=== ;[[CIBC:SoftwareDesign:LinearAlgebra|Linear Algebra]] :Making better use of CBLAS/ATLAS as well as parallel computing ---- CIBC:SoftwareDesign:LinearAlgebra 0 1131 1530 2006-10-27T17:50:14Z Jeroen 19 wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. The 1531 1530 2006-10-27T17:56:09Z Jeroen 19 wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. 1532 1531 2006-10-27T18:19:45Z Jeroen 19 wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; 1533 1532 2006-10-27T18:25:20Z Jeroen 19 /* New parallel environment */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } 1534 1533 2006-10-27T18:29:31Z Jeroen 19 /* New parallel environment */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } One could execute a piece of parallel code as following: MyParallelCode mycode; vector<DMatrix> inputs(2); vector<DMatrix> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0].get_matrix_handle(); 1535 1534 2006-10-27T18:32:01Z Jeroen 19 /* New parallel environment */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; 1536 1535 2006-10-27T18:43:38Z Jeroen 19 /* Linear Algebra */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; ===Memory management=== For the DMatrix class I would use a similar memory management method as used in the matlab classes. Here the object is not directly a handle but not directly an object neither. It is an extended handle that knows the basic properties of the matrix, but can share data with other DMatrices (the datablock idea). This way we can have the algebra in the functions look like real algebra and type like real algebra and only copies are made when it is really necessary. Hence the DMatrix will know whether the data it has is shared or whether it can write the data. If it is shared it will clone when the matrix is altered. The current SCIRun concept of Handles does not support this directly hence it will be added into this new parallel object. ===Local variables=== One can define local variables in the parallel construct, however one has to be aware that the code is running in parallel and that operations on local doubles are done for each thread. ===Accessing SCIRun from parallel world=== This requires some more thought as code runs in parallel, one cannot access SCIRun elements that run in the single threaded world directly as one would access it n times. Hence the environment will have some clause to see the rank of the process. One could add something like: if (get_rank()) { // Access SCIRun object ... } And I assume we should have a basic send and receive setup so one can synchronize variables between threads. Although for most basic linear algebra we would probably not need this. 1537 1536 2006-10-27T18:45:08Z Jeroen 19 /* Accessing SCIRun from parallel world */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; ===Memory management=== For the DMatrix class I would use a similar memory management method as used in the matlab classes. Here the object is not directly a handle but not directly an object neither. It is an extended handle that knows the basic properties of the matrix, but can share data with other DMatrices (the datablock idea). This way we can have the algebra in the functions look like real algebra and type like real algebra and only copies are made when it is really necessary. Hence the DMatrix will know whether the data it has is shared or whether it can write the data. If it is shared it will clone when the matrix is altered. The current SCIRun concept of Handles does not support this directly hence it will be added into this new parallel object. ===Local variables=== One can define local variables in the parallel construct, however one has to be aware that the code is running in parallel and that operations on local doubles are done for each thread. ===Accessing SCIRun from parallel world=== This requires some more thought as code runs in parallel, one cannot access SCIRun elements that run in the single threaded world directly as one would access it n times. Hence the environment will have some clause to see the rank of the process. One could add something like: if (get_rank() == 0) { // Access SCIRun object ... } And I assume we should have a basic send and receive setup so one can synchronize variables between threads. Although for most basic linear algebra we would probably not need this. template<class T> sync_to_all(T& var, int from_rank); 1538 1537 2006-10-27T18:46:22Z Jeroen 19 /* Local variables */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; ===Memory management=== For the DMatrix class I would use a similar memory management method as used in the matlab classes. Here the object is not directly a handle but not directly an object neither. It is an extended handle that knows the basic properties of the matrix, but can share data with other DMatrices (the datablock idea). This way we can have the algebra in the functions look like real algebra and type like real algebra and only copies are made when it is really necessary. Hence the DMatrix will know whether the data it has is shared or whether it can write the data. If it is shared it will clone when the matrix is altered. The current SCIRun concept of Handles does not support this directly hence it will be added into this new parallel object. ===Local variables=== One can define local variables in the parallel construct, however one has to be aware that the code is running in parallel and that operations on local doubles are done for each thread. ===Accessing SCIRun from parallel world=== This requires some more thought as code runs in parallel, one cannot access SCIRun elements that run in the single threaded world directly as one would access it n times. Hence the environment will have some clause to see the rank of the process. One could add something like: if (get_rank() == 0) { // Access SCIRun object ... } And I assume we should have a basic send and receive setup so one can synchronize variables between threads. Although for most basic linear algebra we would probably not need this. template<class T> sync_to_all(T& var, int from_rank); 1539 1538 2006-10-27T19:41:51Z Jeroen 19 /* Linear Algebra */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; ===Memory management=== For the DMatrix class I would use a similar memory management method as used in the matlab classes. Here the object is not directly a handle but not directly an object neither. It is an extended handle that knows the basic properties of the matrix, but can share data with other DMatrices (the datablock idea). This way we can have the algebra in the functions look like real algebra and type like real algebra and only copies are made when it is really necessary. Hence the DMatrix will know whether the data it has is shared or whether it can write the data. If it is shared it will clone when the matrix is altered. The current SCIRun concept of Handles does not support this directly hence it will be added into this new parallel object. ===Local variables=== One can define local variables in the parallel construct, however one has to be aware that the code is running in parallel and that operations on local doubles are done for each thread. ===Accessing SCIRun from parallel world=== This requires some more thought as code runs in parallel, one cannot access SCIRun elements that run in the single threaded world directly as one would access it n times. Hence the environment will have some clause to see the rank of the process. One could add something like: if (get_rank() == 0) { // Access SCIRun object ... } And I assume we should have a basic send and receive setup so one can synchronize variables between threads. Although for most basic linear algebra we would probably not need this. template<class T> sync_to_all(T& var, int from_rank); ===Functions to support=== Here is a lsit functions we might want to support in this environment: ====Matrix types==== * 2D dense matrix (a 1x1 matrix can be a scalar) * 2D sparse matrix ====Functions==== Matrix operations: * Addition * Substraction * Mulitplication * Inversion * Transpose Matrix to Scalar: * Norm * Abs * Maximum * Minimum * Mean Solvers: * ConjGrad * BiConjGrad * GMRES Operation per matrix element: * sin, cos, tan, ctg * asin, acos, atan, actg * ceil, floor, round * log, ln, log10, exp 1540 1539 2006-10-27T19:47:37Z Jeroen 19 /* Overview */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. To do these calculations we create a new class that sets up a series of threads when called and does iterate through a series of mathematical expressions and then returns to the non parallel world. The idea is to shield most of the parallel stuff for the user who just wants to implement a function and give him or her an environment in which we can do linear algebra without the need to really think about doing computations on multiple threads. In a similar fashion like MPI we have a main algorithm through which all the threads execute. However here the parallel instructions are hidden in the overloaded matrix operations of an underlying class that knows how to do basic operations in parallel. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; ===Memory management=== For the DMatrix class I would use a similar memory management method as used in the matlab classes. Here the object is not directly a handle but not directly an object neither. It is an extended handle that knows the basic properties of the matrix, but can share data with other DMatrices (the datablock idea). This way we can have the algebra in the functions look like real algebra and type like real algebra and only copies are made when it is really necessary. Hence the DMatrix will know whether the data it has is shared or whether it can write the data. If it is shared it will clone when the matrix is altered. The current SCIRun concept of Handles does not support this directly hence it will be added into this new parallel object. ===Local variables=== One can define local variables in the parallel construct, however one has to be aware that the code is running in parallel and that operations on local doubles are done for each thread. ===Accessing SCIRun from parallel world=== This requires some more thought as code runs in parallel, one cannot access SCIRun elements that run in the single threaded world directly as one would access it n times. Hence the environment will have some clause to see the rank of the process. One could add something like: if (get_rank() == 0) { // Access SCIRun object ... } And I assume we should have a basic send and receive setup so one can synchronize variables between threads. Although for most basic linear algebra we would probably not need this. template<class T> sync_to_all(T& var, int from_rank); ===Functions to support=== Here is a lsit functions we might want to support in this environment: ====Matrix types==== * 2D dense matrix (a 1x1 matrix can be a scalar) * 2D sparse matrix ====Functions==== Matrix operations: * Addition * Substraction * Mulitplication * Inversion * Transpose Matrix to Scalar: * Norm * Abs * Maximum * Minimum * Mean Solvers: * ConjGrad * BiConjGrad * GMRES Operation per matrix element: * sin, cos, tan, ctg * asin, acos, atan, actg * ceil, floor, round * log, ln, log10, exp 1541 1540 2006-10-27T19:49:26Z Jeroen 19 wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. To do these calculations we create a new class that sets up a series of threads when called and does iterate through a series of mathematical expressions and then returns to the non parallel world. The idea is to shield most of the parallel stuff for the user who just wants to implement a function and give him or her an environment in which we can do linear algebra without the need to really think about doing computations on multiple threads. In a similar fashion like MPI we have a main algorithm through which all the threads execute. However here the parallel instructions are hidden in the overloaded matrix operations of an underlying class that knows how to do basic operations in parallel. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C(outputs[0]); C= A*B + 10*B; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; ===Memory management=== For the DMatrix class I would use a similar memory management method as used in the matlab classes. Here the object is not directly a handle but not directly an object neither. It is an extended handle that knows the basic properties of the matrix, but can share data with other DMatrices (the datablock idea). This way we can have the algebra in the functions look like real algebra and type like real algebra and only copies are made when it is really necessary. Hence the DMatrix will know whether the data it has is shared or whether it can write the data. If it is shared it will clone when the matrix is altered. The current SCIRun concept of Handles does not support this directly hence it will be added into this new parallel object. ===Local variables=== One can define local variables in the parallel construct, however one has to be aware that the code is running in parallel and that operations on local doubles are done for each thread. ===Accessing SCIRun from parallel world=== This requires some more thought as code runs in parallel, one cannot access SCIRun elements that run in the single threaded world directly as one would access it n times. Hence the environment will have some clause to see the rank of the process. One could add something like: if (get_rank() == 0) { // Access SCIRun object ... } And I assume we should have a basic send and receive setup so one can synchronize variables between threads. Although for most basic linear algebra we would probably not need this. template<class T> sync_to_all(T& var, int from_rank); ===Functions to support=== Here is a lsit functions we might want to support in this environment: ====Matrix types==== * 2D dense matrix (a 1x1 matrix can be a scalar) * 2D sparse matrix ====Functions==== Matrix operations: * Addition * Substraction * Mulitplication * Inversion * Transpose Matrix to Scalar: * Norm * Abs * Maximum * Minimum * Mean Solvers: * ConjGrad * BiConjGrad * GMRES Operation per matrix element: * sin, cos, tan, ctg * asin, acos, atan, actg * ceil, floor, round * log, ln, log10, exp ===Modules to rewrite=== In the core we should have modules like LinearAlgebra LinAlgBinary and LinAlgUnary have use this mechanism internally. Similarly we can have modules like Tikhonov use this mechanism. CIBC:SoftwareDesign:LinearAlgebra 0 1131 1542 1541 2006-10-27T19:50:32Z Jeroen 19 /* New parallel environment */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. To do these calculations we create a new class that sets up a series of threads when called and does iterate through a series of mathematical expressions and then returns to the non parallel world. The idea is to shield most of the parallel stuff for the user who just wants to implement a function and give him or her an environment in which we can do linear algebra without the need to really think about doing computations on multiple threads. In a similar fashion like MPI we have a main algorithm through which all the threads execute. However here the parallel instructions are hidden in the overloaded matrix operations of an underlying class that knows how to do basic operations in parallel. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A(inputs[0]); DMatrix B(inputs[1]); DMatrix C; C= A*B + 10*B; outputs[0] = C; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; ===Memory management=== For the DMatrix class I would use a similar memory management method as used in the matlab classes. Here the object is not directly a handle but not directly an object neither. It is an extended handle that knows the basic properties of the matrix, but can share data with other DMatrices (the datablock idea). This way we can have the algebra in the functions look like real algebra and type like real algebra and only copies are made when it is really necessary. Hence the DMatrix will know whether the data it has is shared or whether it can write the data. If it is shared it will clone when the matrix is altered. The current SCIRun concept of Handles does not support this directly hence it will be added into this new parallel object. ===Local variables=== One can define local variables in the parallel construct, however one has to be aware that the code is running in parallel and that operations on local doubles are done for each thread. ===Accessing SCIRun from parallel world=== This requires some more thought as code runs in parallel, one cannot access SCIRun elements that run in the single threaded world directly as one would access it n times. Hence the environment will have some clause to see the rank of the process. One could add something like: if (get_rank() == 0) { // Access SCIRun object ... } And I assume we should have a basic send and receive setup so one can synchronize variables between threads. Although for most basic linear algebra we would probably not need this. template<class T> sync_to_all(T& var, int from_rank); ===Functions to support=== Here is a lsit functions we might want to support in this environment: ====Matrix types==== * 2D dense matrix (a 1x1 matrix can be a scalar) * 2D sparse matrix ====Functions==== Matrix operations: * Addition * Substraction * Mulitplication * Inversion * Transpose Matrix to Scalar: * Norm * Abs * Maximum * Minimum * Mean Solvers: * ConjGrad * BiConjGrad * GMRES Operation per matrix element: * sin, cos, tan, ctg * asin, acos, atan, actg * ceil, floor, round * log, ln, log10, exp ===Modules to rewrite=== In the core we should have modules like LinearAlgebra LinAlgBinary and LinAlgUnary have use this mechanism internally. Similarly we can have modules like Tikhonov use this mechanism. 3270 1542 2006-10-27T19:51:09Z Jeroen 19 /* New parallel environment */ wikitext text/x-wiki == Linear Algebra == ===Overview=== The idea is to create a new computational environment not unlike MPI to do matrix operations in parallel using CBLAS underneath for optimal computation speeds. To do these calculations we create a new class that sets up a series of threads when called and does iterate through a series of mathematical expressions and then returns to the non parallel world. The idea is to shield most of the parallel stuff for the user who just wants to implement a function and give him or her an environment in which we can do linear algebra without the need to really think about doing computations on multiple threads. In a similar fashion like MPI we have a main algorithm through which all the threads execute. However here the parallel instructions are hidden in the overloaded matrix operations of an underlying class that knows how to do basic operations in parallel. ===New matrix class=== The current class for matrices called DenseMatrix and ColumnMatrix are far from optimized and contain all kinds of leftovers of previous developments and do not contain mechanisms to do math in parallel in an optimal way. Hence the idea is to introduce a new class: class DMatrix { public: DMatrix(MatrixHandle& mat); ... } This class will internally keep a handle to the Matrix so it can reuse its memory management system. The name '''DMatrix''' stands for 'Matrix of Doubles', I envison at some point we want to have a 'CDMatrix' as well for 'Matrix of complex doubles' etc. This class however will have the option to attach a parallel environment specifying the number of threads that are available for computation and hence will know about parallel computing. By specifying a new matrix class, we can restrict the class to having only two internal representations: sparse or dense, and not the four we have currently in SCIRun. This will reduce the amount of additions, multiplies etc, we need to write. For two representation there are only four combinations per operator, for the four matrix types we have now this expands to sixteen, which requires far more implementation. ===New parallel environment=== To do math I envison we use a class that basically streamlines parallel computation. As launching threads is slow (depending on OS, but for example on OSX it is extremely slow) it would be nice to setup threads first and then do a few matrix operations in series in the same environment. This will speed up computation. What I am envisioning is a construct like what is used in MPI, where one writes a segment of code that is executed in parallel and the code that is being executed is the same on all threads. In this case MPI calls are replaced with the matrix operations. As DMatrix is aware of the environment it will execute an addition, multiply or solve in parallel and make it appear that every thread did the same operation. This is how I see the environment would look like class ParallelLinearAlgebra { public: // Constructor // Setup a series of threads to do parallel math ParallelLinearAlgebra(unsigned int numprocesses); // Automatically detect the number of cores we can use for parallel math ParallelLinearAlgebra(); // Function that needs to be overloaded with the actual parallel code virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); // Function that needs to be called from the normal single execution world void execute(vector<MatrixHandle> inputs, vector<MatrixHandle>& outputs); }; To use this class one should overload the function with the parallel code: class MyParallelCode public: ParallelLinearAlgebra { public: virtual void function(vector<DMatrix> inputs, vector<DMatrix>& outputs); }; An example of parallel code could be like this: void MyParallelCode::function(vector<DMatrix> inputs, vector<DMatrix>& outputs) { DMatrix A, B, C; A = inputs[0]; B = inputs[1]; C= A*B + 10*B; outputs[0] = C; } One could execute a piece of parallel code as following: // My parallel module MyParallelCode mycode; vector<MatrixHandle> inputs(2); vector<MatrixHandle> outputs(1); input[0] = matrix1; input[1] = matrix2; mycode.execute(inputs,outputs); MatrixHandle output = outputs[0]; ===Memory management=== For the DMatrix class I would use a similar memory management method as used in the matlab classes. Here the object is not directly a handle but not directly an object neither. It is an extended handle that knows the basic properties of the matrix, but can share data with other DMatrices (the datablock idea). This way we can have the algebra in the functions look like real algebra and type like real algebra and only copies are made when it is really necessary. Hence the DMatrix will know whether the data it has is shared or whether it can write the data. If it is shared it will clone when the matrix is altered. The current SCIRun concept of Handles does not support this directly hence it will be added into this new parallel object. ===Local variables=== One can define local variables in the parallel construct, however one has to be aware that the code is running in parallel and that operations on local doubles are done for each thread. ===Accessing SCIRun from parallel world=== This requires some more thought as code runs in parallel, one cannot access SCIRun elements that run in the single threaded world directly as one would access it n times. Hence the environment will have some clause to see the rank of the process. One could add something like: if (get_rank() == 0) { // Access SCIRun object ... } And I assume we should have a basic send and receive setup so one can synchronize variables between threads. Although for most basic linear algebra we would probably not need this. template<class T> sync_to_all(T& var, int from_rank); ===Functions to support=== Here is a lsit functions we might want to support in this environment: ====Matrix types==== * 2D dense matrix (a 1x1 matrix can be a scalar) * 2D sparse matrix ====Functions==== Matrix operations: * Addition * Substraction * Mulitplication * Inversion * Transpose Matrix to Scalar: * Norm * Abs * Maximum * Minimum * Mean Solvers: * ConjGrad * BiConjGrad * GMRES Operation per matrix element: * sin, cos, tan, ctg * asin, acos, atan, actg * ceil, floor, round * log, ln, log10, exp ===Modules to rewrite=== In the core we should have modules like LinearAlgebra LinAlgBinary and LinAlgUnary have use this mechanism internally. Similarly we can have modules like Tikhonov use this mechanism. CIBC:Documentation:SCIRun:Reference:BioPSE 0 1132 3271 2006-10-31T00:03:46Z Blackham 44 wikitext text/x-wiki =='''BioPSE Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ImportDenseMatrixFromRaw|ImportDenseMatrixFromRaw]] :The RawtoDenseMatrix mdoule reads CVRTI potentials, with output as a DenseMatrix. ==='''Forward'''=== ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ApplyFEMCurrentSource|ApplyFEMCurrentSource]] :The ApplyFEMCurrentSource module builds the right-hand side (ColumnMatrix) to reflect monopolar and dipolar current sources for finite-element based bioelectric field problems. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ApplyFEMElectrodeSource|ApplyFEMElectrodeSource]] :Due to course current dipoles, the ApplyFEMElectrodeSource module changes and recreates the right-hand side (RHS) for the Finite Elements discretization approach. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ApplyFEMVoltageSource|ApplyFEMVoltageSource]] :The module changes/creates the right-hand side (RHS) and forward matrices for voltgage (Dirichlet) boundary conditions. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:BuildBEMSrcToInfTransferMatrix|BuildBEMSrcToInfTransferMatrix]] :FILL THIS IN ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:BuildBEMatrix|BuildBEMatrix]] :The module solves a discretized model of Laplace's equation in a 3D volume conductor model using "surface method", given a particular type of boundary condition. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:BuildEITMatrix|BuildEITMatrix]] :The module solves a discretized model of Laplace's equation in a 3D volume conductor model using "surface method", given a particular type of boundary condition. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:BuildFEMatrix|BuildFEMatrix]] :The module sets up a mesh with conductivity tensors for bioelectric field problems. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:CalculateCurrentDensity|CalculateCurrentDensity]] :Compute the current density vector field ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertFieldDataFromIndicesToTensors|ConvertFieldDataFromIndicesToTensors]] :Change a Field of ints, into a Field of Tensors. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertFieldDataFromTensorsToIndices|ConvertFieldDataFromTensorsToIndices]] :Change a Field of ints, into a Field of Tensors. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:CreateAnisoSphereParameters|CreateAnisoSphereParameters]] :CreateAnisoSphereParameters implements a four-layer anisotropic spherical volume conductor. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:CreateDiscreteAnisoSpheres|CreateDiscreteAnisoSpheres]] :Scale the geometry of a sphere to a requested size and assign a conductivity tensor to each cell. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:CreateElectrodeParameterMatrices|CreateElectrodeParameterMatrices]] :? ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:CreateTrigCurrentPattern|CreateTrigCurrentPattern]] :? ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:GetActivationTimes|GetActivationTimes]] :Accepts a matrix of potentials on a surface and calculates the activation times by selecting the lowest (most negative) derivative. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:InsertElectrodes|InsertElectrodes]] :Insert electrodes into a finite element mesh. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:InsertVoltageSource|InsertVoltageSource]] :Insert electrodes into a finite element mesh. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:IntegrateCurrent|IntegrateCurrent]] :Compute the current across a surface. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SetEITGround|SetEITGround]] :? ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SetWireElectrodePotential|SetWireElectrodePotential]] :Configure an electrode. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SetWireElectrodeProperties|SetWireElectrodeProperties]] :Configure an electrode. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SimulateDipoleInAnisoSpheresAnalytically|SimulateDipoleInAnisoSpheresAnalytically]] :Due to a specified dipole, the potential on the outer sphere of a four layer spherical volume conductor is computed. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SimulateDipoleInSphereAnalytically|SimulateDipoleInSphereAnalytically]] :Due to the specified dipoles, the SimulateDipoleInSphereAnalytically module fills the sphere field with potentials values. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SimulateEITAnalytically|SimulateEITAnalytically]] :? ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SimulateForwardMagneticField|SimulateForwardMagneticField]] :Calculation of magnetic field at given detector points due to specificed dipoles. ==='''Inverse'''=== ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:BuildSurfaceLaplacianMatrix|BuildSurfaceLaplacianMatrix]] :Transform attributes ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:OptimizeConductivities|OptimizeConductivities]] :Summary not available yet. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:OptimizeDipole|OptimizeDipole]] :Summary not available yet. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTSVD|SolveInverseProblemWithTSVD]] :Solve inverse problem using Truncated SVD. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonov|SolveInverseProblemWithTikhonov]] :This module applies SolveInverseProblemWithTikhonov regularization to an existing forward model, with flexible control of regularization type and parameters. Currently, the module solves the inverse problem in a single time-instant. This module requires a forward model matrix, geometries for the associated surfaces, and some remote boundary conditions, i.e., torso or head surface potentials. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonovSVD|SolveInverseProblemWithTikhonovSVD]] :Solve inverse problem using Tikhonov regularization by using SVD. ==='''LeadField'''=== ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:BuildElemLeadField|BuildElemLeadField]] :Summary not available yet. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:BuildLeadFieldSourcesFromElectricCurrentMatrix|BuildLeadFieldSourcesFromElectricCurrentMatrix]] :Assign data to a field. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:CalculateMisfitField|CalculateMisfitField]] :Summary not available yet. ==='''Modeling'''=== ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:AbsorbSegFieldIslands|AbsorbSegFieldIslands]] :Create and process a segmented volume: erosion/dilation/open/close/absorb. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertSegFieldToLatVol|ConvertSegFieldToLatVol]] :Create a LatVolField from a SegLatVolField -- choose a quantity to store as the data. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertSegFieldToSepSurfs|ConvertSegFieldToSepSurfs]] :Create Separating surfaces from a SegLatVolField. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertSepSurfToQuadSurf|ConvertSepSurfToQuadSurf]] :Change the Separating Surface into a QuadSurf. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:GetSingleSurfaceFromSepSurfs|GetSingleSurfaceFromSepSurfs]] :Extract a single QuadSurf (one connected component) from a Separating Surface. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:SetConductivities|SetConductivities]] :Change the conductivity tensors in a field. ==='''NeuroFEM'''=== ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:InterfaceWithNeuroFEMForward|InterfaceWithNeuroFEMForward]] :Invoke the NeuroFEM ipm program to solve the forward problem for the inputs. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:InterfaceWithNeuroFEMInverse|InterfaceWithNeuroFEMInverse]] :Invoke the NeuroFEM ipm program to solve the input problem for the inputs. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ShowAndEditDipoles|ShowAndEditDipoles]] :Summary not available yet. ;[[CIBC:Documentation:SCIRun:Reference:BioPSE:ViewLeadSignals|ViewLeadSignals]] :The ViewLeadSignals module graphs a Matrix that has rows of potentials. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:BioPSE:ImportDenseMatrixFromRaw 0 1133 3272 2006-10-31T00:04:20Z Blackham 44 wikitext text/x-wiki =='''ImportDenseMatrixFromRaw'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: DataIO :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The RawtoDenseMatrix mdoule reads CVRTI potentials, with output as a DenseMatrix. ====Detailed Description==== The input data comes from CVRTI (Cardiovascular Research and Training Institute) formatted .pots file. The output is a DenseMatrix, arranged with each lead in the rows, and each column as a time instance. The UI sets the start, end, and units for the time steps. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ApplyFEMCurrentSource 0 1134 3273 2006-10-31T00:05:02Z Blackham 44 wikitext text/x-wiki =='''ApplyFEMCurrentSource'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ApplyFEMCurrentSource module builds the right-hand side (ColumnMatrix) to reflect monopolar and dipolar current sources for finite-element based bioelectric field problems. ====Detailed Description==== Version Date: March 2001 Version: 1.0 If an input RHS ColumnMatrix is present, this module adds the contributions for the current sources into that matrix (i.e. multiple ApplyFEMCurrentSource modules can be cascaded together). If no RHS is present, this module will generate one. The RHS ColumnMatrix will be of length n, where n is the number of nodes in the finite element mesh. We assume the mesh will be stored in a TetVolMesh, a HexVolMesh, or a TriSurfMesh. There are two types of current sources supported by this module: dipoles, and sources-and-sinks. With dipoles, the user must pass in a PointCloudFieldd<Vector> into the Sources input port. The position of each PointCloud node corresponds to the location of the dipole, and the corresponding Vector corresponds to the moment of the dipole. If the user wishes to use dipolar sources, they must pass in a PointCloudField<Vector> AND they must select "dipole" for the Source Model on the UI window. In contrast to the dipole model, the sources-and-sinks option has several sub-models. To activate any of these, the user must select the "sources and sinks" option from the UI. The values that are used for sources-and-sinks are a combination of: the source and sink indices entered in the UI; a PointCloudField<double> passed into the Source port; and a MappingMatrix. Here is the logic for how those values are used: 1) if we don't have a Mapping matrix, we use the source/sink indices from the UI as node indices from the volume mesh between which one unit of current is passed; 2) if we have a Mapping matrix, but we don't have a Source field, then the source/sink indices refer to the PointCloud and we use the Mapping matrix to get their corresponding volume node indices, and we then pass one unit of current between them; 3) if we have a Mapping matrix AND a Source field, then ignore the source/sink indices from the UI, and assume that the Mapping matrix maps the PointCloud nodes to Volume mesh nodes and that the data values (doubles) from the PointCloud indicate the strength (current density) for each point source. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ApplyFEMElectrodeSource 0 1135 3274 2006-10-31T00:05:25Z Blackham 44 wikitext text/x-wiki =='''ApplyFEMElectrodeSource'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Due to course current dipoles, the ApplyFEMElectrodeSource module changes and recreates the right-hand side (RHS) for the Finite Elements discretization approach. ====Detailed Description==== Version Date: March 2001 Version: 1.0 The ApplyFEMElectrodeSource module creates and fills a new ColumnMatrix, according to mesh and dipole parameters in situations where it does not locate a ColumnMatrix on its input that contains an RHS to modify, or when the module finds a ColumnMatrix of a different size than the number of nodes in the mesh. We assume the mesh to be a TetVolField(int) type, containing indices to the conductivity tensor lookup table. The documentation for the MODULE REFERENCE module provides further documentation about this mesh. Dipoles are represented as nodes in TetVolMesh. The corresponding value are vectors representing dipole moments. Thus, the module expects dipoles as TetVolField(Vector) field ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ApplyFEMVoltageSource 0 1136 3275 2006-10-31T00:05:43Z Blackham 44 wikitext text/x-wiki =='''ApplyFEMVoltageSource'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The module changes/creates the right-hand side (RHS) and forward matrices for voltgage (Dirichlet) boundary conditions. ====Detailed Description==== Version Date: March 2001 Version: 1.0 The module has the following behaviour: The ApplyFEMVoltageSource module creates and fills a new ColumnMatrix, according to mesh and dipole parameters in situations where it does not locate a ColumnMatrix on its input that contains an RHS to modify, or when the module finds a ColumnMatrix of a different size than the number of nodes in the mesh. We assume the mesh to be a TetVolField(int) type, containing indices to the conductivity tensor lookup table. The documentation for the MODULE REFERENCE module provides further information about this mesh. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:BuildBEMSrcToInfTransferMatrix 0 1137 3276 2006-10-31T00:06:13Z Blackham 44 wikitext text/x-wiki =='''BuildBEMSrcToInfTransferMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Andrew Keely :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== FILL THIS IN ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:BuildBEMatrix 0 1138 3277 2006-10-31T00:08:23Z Blackham 44 wikitext text/x-wiki =='''BuildBEMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Saeed Babaeizadeh , Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The module solves a discretized model of Laplace's equation in a 3D volume conductor model using "surface method", given a particular type of boundary condition. ====Detailed Description==== The specific problem the authors had in mind was the forward problem of electrocardiography which consists of calculating, for a given time instant, the potential distribution generated at the surface of a specified volume conductor due the presence of the selected equivalent sources on a surface inside the conductor (The module should work for other problems which fit the same physical description, but has only been tested for forward electrocardiography.) In surface methods, the different volume conductor regions are assumed to have a constant and isotropic conductivity, and only the interfaces between the different regions are triangulated and represented in the numerical model. This module uses the "Transfer-Coefficient Approach" or "solid-angle method" developed by Barr et al. [i], as extended to include torso inhomogeneities in [ii] and with an improved algorithm for computing the solid angles [iii]. [i] R.C. Barr, M. Ramsey, and M.S. Spach, "Relating epicardial to body surface potential distribution by means of transfer coefficients based on geometry measurement," IEEE Trans. Biomed. Eng., vol. BME-24, pp. 1-11, 1977. [ii] P.C. Stanley, T.C. Pilkington, and M.N. Morrow., "The effects of thoracic inhomogeneities on the relationship between epicardial and torso potentials," IEEE Transactions on Biomedical Engineering, BME-33, pp.273-284, 1986. [iii] J.A. De Munck, "Linear discretization of the volume conductor boundary integral equation using analytically integrated elements," IEEE Trans. Biomed. Eng., vol. 39, no. 9, 1992. This module requires the triangulated surfaces of all the objects as inputs and creates the forward solution matrix as output. The geometric relationships of the surfaces are defined as described below, as are the boundary conditions to apply. The number of input fields is two or greater and can be unlimited but one of them must be defined as the "source surface" where the Dirichlet boundary condition is given and another one defined as the "measurement surface" where the quantity of interest is to be calculated. To do this we use a "SetProperty" module for each of these two designated surfaces with `Property'= `in/out' and `Value' = `in' for the "source surface" and `Value' = `out' for the "measurement surface". Insulating boundary conditions (Neumann boundary conditions) are assumed on the outermost surface. To define the geometric relationships of the various fields, for each of the input fields use a "SetProperty" module with `Property'=`Inside Conductivity' and `Value' = the numerical value of the internal conductivity of the corresponding homogeneous region. The output is the forward solution matrix. This matrix can be multiplied to a Dirichlet boundary condition on the "source surface" to result in the boundary values on the "measurement surface". This matrix is needed as an input for the modules "TikhonovSVD", "Tikhonov" and "TSVD". ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:BuildEITMatrix 0 1139 3278 2006-10-31T00:08:43Z Blackham 44 wikitext text/x-wiki =='''BuildEITMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Saeed Babaeizadeh :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The module solves a discretized model of Laplace's equation in a 3D volume conductor model using "surface method", given a particular type of boundary condition. ====Detailed Description==== The specific problem the authors had in mind was the forward problem of Electrical Impedance Tomography (EIT) which consists of calculating, for a given time instant, the potential distribution generated at the surface of a specified volume conductor due the presence of some current sources on the same surface (the module should work for other problems which fit the same physical description, but has only been tested for forward EIT.) In surface methods, the different volume conductor regions are assumed to have a constant and isotropic conductivity, and only the interfaces between the different regions are triangulated and represented in the numerical model. This module is based on a method developed in [i] and uses the "Transfer-Coefficient Approach" or "solid-angle method" developed by Barr et al. [ii], as extended to include torso inhomogeneities in [iii] and with an improved algorithm for computing the solid angles [iv]. [i] S. Babaeizadeh, D. H. Brooks, and D. Isaacson, "A 3-D Boundary Element Solution to the Forward Problem of Electrical Impedance Tomography, " Proceedings of the 26th Annual International Conference of the IEEE EMBS, pp. 960-963, 2004. [ii] R.C. Barr, M. Ramsey, and M.S. Spach, "Relating epicardial to body surface potential distribution by means of transfer coefficients based on geometry measurement," IEEE Trans. Biomed. Eng., vol. BME-24, pp. 1-11, 1977. [iii] P.C. Stanley, T.C. Pilkington, and M.N. Morrow., "The effects of thoracic inhomogeneities on the relationship between epicardial and torso potentials," IEEE Transactions on Biomedical Engineering, BME-33, pp.273-284, 1986. [iv] J.A. De Munck, "Linear discretization of the volume conductor boundary integral equation using analytically integrated elements," IEEE Trans. Biomed. Eng., vol. 39, no. 9, 1992. This module requires the triangulated surfaces of all the objects as inputs and creates the forward solution matrix as output. The geometric relationships of the surfaces are defined as described below, as are the boundary conditions to apply. The number of input fields is one or two. The outermost surface is the surface on which Neumann boundary condition is given where the quantity of interest is the Dirichlet boundary condition which is to be calculated. To define the geometric relationships of the various fields, for each of the input fields use a "SetProperty" module with `Property'=`Inside Conductivity' and `Value' = the numerical value of the internal conductivity of the corresponding homogeneous region. The output is the forward solution matrix. This matrix can be multiplied to a Neumann boundary condition on the outermost surface; to result in the Dirichlet boundary condition on the same surface. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:BuildFEMatrix 0 1140 3279 2006-10-31T00:09:03Z Blackham 44 wikitext text/x-wiki =='''BuildFEMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Alexei Samsonov, Ruth Nicholson Klepfer :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The module sets up a mesh with conductivity tensors for bioelectric field problems. ====Detailed Description==== Version Date: March 2001 Version: 1.0 The module provides basic means for construction of the FE matrix with linear elements for bioelectric field problems (discretization of Poisson equation for volume conductor problem). The input field should be a Field (TriSurf, HexVol, or TetVol) of either Tensors or integers, with the data values defined at the elements (constant over each element). If it is a Field of Tensors, each Tensor indicates the local conductivity tensor at that location in the mesh. If it is a Field of Integers, then each integer is an index into a lookup table, where the table contains a set of conductivity tensors. When using the index/table approach, a "conductivity_table" Property must be stored with the Field, where the conductivity table is of type pair<string,Tensor> (i.e. the individual material types can have descriptive names). The BioPSE::Modeling::ModifyConductivities module can be used to generate (as well as to modify) the conductivity_table property. The BioPSE::Forward::IndicesToTensors and BioPSE::Forward::TensorsToIndices modules are useful for converting between the index/table (Field of integer with a conductivity_table Propert) and the full Tensor (Field of Tensors) representations. BioPSE::Algorithm::BuildFEMatrix::build_FEMatrix() performs the actual computation of the matrix. Other modules or any other code may use the algorithm for other kinds of problems involving discretization of the Poisson equation by linear finite elements. The discretization of the Poisson equation on the supplied mesh is performed by linear finite elements using Galerkin approach. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:CalculateCurrentDensity 0 1141 3280 2006-10-31T00:09:22Z Blackham 44 wikitext text/x-wiki =='''CalculateCurrentDensity'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Compute the current density vector field ====Detailed Description==== Version Date: January 2003 Version: 1.0 CalculateCurrentDensity calculate the current density vector field. Required inputs are the electric field and mesh with conductivities. Technical note: The current density vector field J is the product of sigma and -del V. The minus sign is added in CalculateCurrentDensity, so the electric field input should be positive (which is the unmodified output of the MODULE REFERENCE module). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertFieldDataFromIndicesToTensors 0 1142 3281 2006-10-31T00:09:44Z Blackham 44 wikitext text/x-wiki =='''ConvertFieldDataFromIndicesToTensors'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Change a Field of ints, into a Field of Tensors. ====Detailed Description==== IndiciesToTensors is used to convert a Field of ints, where the ints are indices into a conductivity_table property (table is a vector of pairs, where each pair contains a string (the name of the material region) and a Tensor), into a Field of Tensors. This module is templatized -- it should work for any Mesh type, and any data_at location. Presently it only work for the conductivity_table -- eventually it would be nice to instantiate any data type that is mapped through a lookup table. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertFieldDataFromTensorsToIndices 0 1143 3282 2006-10-31T00:10:03Z Blackham 44 wikitext text/x-wiki =='''ConvertFieldDataFromTensorsToIndices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Change a Field of ints, into a Field of Tensors. ====Detailed Description==== ConvertFieldDataFromTensorsToIndices is used to convert a Field of Tensors, where the ints are indices into a conductivity_table property (table is a vector of pairs, where each pair contains a string (the name of the material region) and a Tensor), into a Field of Tensors. This module is templatized -- it should work for any Mesh type, and any data_at location. Presently it only work for the conductivity_table -- eventually it would be nice to instantiate any data type that is mapped through a lookup table. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:CreateAnisoSphereParameters 0 1144 3283 2006-10-31T00:10:27Z Blackham 44 wikitext text/x-wiki =='''CreateAnisoSphereParameters'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== CreateAnisoSphereParameters implements a four-layer anisotropic spherical volume conductor. ====Detailed Description==== CreateAnisoSphereParameters implements the geometry and composition of a four-layer anisotropic spherical volume conductor, resembling the human head. See CROSS REFERENCE. CreateAnisoSphereParameters provides data to other modules. For instance, due to a dipole in the innermost spere, MODULE REFERENCE and MODULE REFERENCE are used to compute the potential distribution on the outer sphere of the volume conductor. CreateAnisoSphereParameters provides the following parameters, which can be adjusted via CreateAnisoSphereParameters's GUI: <unorderedlist> Radii for scalp, skull, cerebrospinal fluid, and brain Radial and tangential conductivities for scalp, skull, cerebrospinal fluid, and brain Electrode positions where the potential distribution should be computed (on the surface of the outermost sphere) </unorderedlist> Network "net.das" demonstrates the use of CreateAnisoSphereParameters in a network. [[Image:Reference_BioPSE_../Modules/Forward/doc/sphere_model.gif|Schematic Representation of the Spherical Volume Conductor.]] ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:CreateDiscreteAnisoSpheres 0 1145 3284 2006-10-31T00:10:49Z Blackham 44 wikitext text/x-wiki =='''CreateDiscreteAnisoSpheres'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Sascha Moehrs :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Scale the geometry of a sphere to a requested size and assign a conductivity tensor to each cell. ====Detailed Description==== The module creates a discrete version of a four-layer anisotropic spherical volume conductor, resembling the human head. The volume conductor consists of four concentric spheres. Each sphere can have different radial and tangential conductivities. The input mesh, which is a discrete unit sphere, is scaled to the outer radius of the model. The radii of all four layers should be provided via the input port 'SphereRadii'. Moreover, a conductivity tensor is assigned to each cell (i.e. the cell is associated with one of the four layers based on the distance of the cell to the sphere center). Then, based on the radial and tangential conductitities at port 'AnisoConductivities', a conductivity tensor is computed for that cell. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:CreateElectrodeParameterMatrices 0 1146 3285 2006-10-31T00:11:06Z Blackham 44 wikitext text/x-wiki =='''CreateElectrodeParameterMatrices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Lorena Kreda :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ? ====Detailed Description==== > ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:CreateTrigCurrentPattern 0 1147 3286 2006-10-31T00:11:37Z Blackham 44 wikitext text/x-wiki =='''CreateTrigCurrentPattern'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): ? :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ? ====Detailed Description==== ? ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:GetActivationTimes 0 1148 3287 2006-10-31T00:11:54Z Blackham 44 wikitext text/x-wiki =='''GetActivationTimes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Andrew Keely :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Accepts a matrix of potentials on a surface and calculates the activation times by selecting the lowest (most negative) derivative. ====Detailed Description==== Version Date: May 1999 Version: 1.0 ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:InsertElectrodes 0 1149 3288 2006-10-31T00:12:15Z Blackham 44 wikitext text/x-wiki =='''InsertElectrodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Insert electrodes into a finite element mesh. ====Detailed Description==== Insert electrodes into a finite element mesh. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:InsertVoltageSource 0 1150 3289 2006-10-31T00:12:34Z Blackham 44 wikitext text/x-wiki =='''InsertVoltageSource'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Insert electrodes into a finite element mesh. ====Detailed Description==== Insert electrodes into a finite element mesh. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:IntegrateCurrent 0 1151 3290 2006-10-31T00:12:53Z Blackham 44 wikitext text/x-wiki =='''IntegrateCurrent'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Compute the current across a surface. ====Detailed Description==== Version Date: January 2003 Version: 1.0 IntegrateCurrent calculates current flow across a surface. Required inputs are the electric field, mesh with conductivities, and a surface enclosing the current source(s). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SetEITGround 0 1152 3291 2006-10-31T00:13:15Z Blackham 44 wikitext text/x-wiki =='''SetEITGround'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): ? :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ? ====Detailed Description==== ? ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SetWireElectrodePotential 0 1153 3292 2006-10-31T00:13:34Z Blackham 44 wikitext text/x-wiki =='''SetWireElectrodePotential'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Configure an electrode. ====Detailed Description==== Configure an electrode. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SetWireElectrodeProperties 0 1154 3293 2006-10-31T00:13:58Z Blackham 44 wikitext text/x-wiki =='''SetWireElectrodeProperties'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Configure an electrode. ====Detailed Description==== Configure an electrode. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SimulateDipoleInAnisoSpheresAnalytically 0 1155 3294 2006-10-31T00:14:20Z Blackham 44 wikitext text/x-wiki =='''SimulateDipoleInAnisoSpheresAnalytically'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Sascha Moehrs :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Due to a specified dipole, the potential on the outer sphere of a four layer spherical volume conductor is computed. ====Detailed Description==== The potentials on the outer sphere are calculated analytically at the electrode positions. The spherical volume consists of four layers (skalp, skull, cerebrospinal fluid, brain). Every layer can have different radial and tangential conductivities. The dipole has to be in the innermost sphere. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SimulateDipoleInSphereAnalytically 0 1156 3295 2006-10-31T00:14:37Z Blackham 44 wikitext text/x-wiki =='''SimulateDipoleInSphereAnalytically'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): David Weinstein, Alexei Samsonov :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Due to the specified dipoles, the SimulateDipoleInSphereAnalytically module fills the sphere field with potentials values. ====Detailed Description==== Version Date: March 2001 Version: 1.1 The current version of the module provides analytical calculation of potentials on the surface of the supplied sphere. We assume that the sphere has uniform conductivity equal to 1. The center of the sphere is the center of the bounding box, and the radius is half of the maximum dimension of the box. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SimulateEITAnalytically 0 1157 3296 2006-10-31T00:14:56Z Blackham 44 wikitext text/x-wiki =='''SimulateEITAnalytically'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): ? :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ? ====Detailed Description==== ? ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SimulateForwardMagneticField 0 1158 3297 2006-10-31T00:15:17Z Blackham 44 wikitext text/x-wiki =='''SimulateForwardMagneticField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Forward :Author(s): Robert Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Calculation of magnetic field at given detector points due to specificed dipoles. ====Detailed Description==== The modules calculates the magnetic field due to given dipoles at specified detector positions based on the Biot-Savart law. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:BuildSurfaceLaplacianMatrix 0 1159 3298 2006-10-31T00:15:43Z Blackham 44 wikitext text/x-wiki =='''BuildSurfaceLaplacianMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Inverse :Author(s): Yesim Serinagaoglu :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Transform attributes ====Detailed Description==== Transform attributes ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:OptimizeConductivities 0 1160 3299 2006-10-31T00:16:08Z Blackham 44 wikitext text/x-wiki =='''OptimizeConductivities'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Inverse :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Summary not available yet. ====Detailed Description==== Version Date: May 2000 Version: 1.0 ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:OptimizeDipole 0 1161 3300 2006-10-31T00:16:23Z Blackham 44 wikitext text/x-wiki =='''OptimizeDipole'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Inverse :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Summary not available yet. ====Detailed Description==== Version Date: May 1999 Version: 1.0 ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTSVD 0 1162 3301 2006-10-31T00:17:15Z Blackham 44 wikitext text/x-wiki =='''SolveInverseProblemWithTSVD'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Inverse :Author(s): Alireza Ghodrtai :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Solve inverse problem using Truncated SVD. ====Detailed Description==== Solve inverse problem using Truncated SVD. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonov 0 1163 3302 2006-10-31T00:17:37Z Blackham 44 wikitext text/x-wiki =='''SolveInverseProblemWithTikhonov'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Inverse :Author(s): Yesim Serinagaoglu :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module applies SolveInverseProblemWithTikhonov regularization to an existing forward model, with flexible control of regularization type and parameters. Currently, the module solves the inverse problem in a single time-instant. This module requires a forward model matrix, geometries for the associated surfaces, and some remote boundary conditions, i.e., torso or head surface potentials. ====Detailed Description==== The SolveInverseProblemWithTikhonov module has three inputs, two outputs, and a user interface (UI) for selecting the regularization parameter. Forward problem matrix, A: This matrix could be created using the MODULE REFERENCE module, or created elsewhere and saved as SCIRun matrix format, which loads via the MODULE REFERENCE module. A Regularization matrix will contain the transform that constrains the regularized inverse solution. This is typically the output of the MODULE REFERENCE module, but as in the Forward matrix, can be created externally and loaded via the MODULE REFERENCE module. If nothing is connected to this input, the identity matrix is used as default. The Neumann Boundary conditions, y, are values of potential on the outer boundary of the geometry, typically the body surface or head surface potentials. This is the "attributes" part of a field data type. The MODULE REFERENCE module can be used to extract the vector of attributes (i.e., the potentials) from the original field data. Output 1 from the left is a vector of potentials without any geometry information. This vector can be combined with the appropriate geometry file using the ManageFieldData module to create a field data format. The UI of the SolveInverseProblemWithTikhonov module selects a method to choose lambda. Thus far, we have implemented three options: 1)enter a single value: the user can type any value in the UI and the solution is implemented for that lambda value only, 2) choose from a slider: the user can select a value by moving the slider (the range of the slider and the increments are pre-defined inside the code), and 3) determine the value using the L-curve method. The range of regularization parameters used for the slider and to obtain the L-curve is user defined. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonovSVD 0 1164 3303 2006-10-31T00:17:52Z Blackham 44 wikitext text/x-wiki =='''SolveInverseProblemWithTikhonovSVD'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Inverse :Author(s): Alireza Ghodrati :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Solve inverse problem using Tikhonov regularization by using SVD. ====Detailed Description==== Solve inverse problem using Tikhonov regularization by using SVD. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:BuildElemLeadField 0 1165 3304 2006-10-31T00:18:13Z Blackham 44 wikitext text/x-wiki =='''BuildElemLeadField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: LeadField :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Summary not available yet. ====Detailed Description==== Version Date: September 1999 Version: 1.0 ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:BuildLeadFieldSourcesFromElectricCurrentMatrix 0 1166 3305 2006-10-31T00:19:12Z Blackham 44 wikitext text/x-wiki =='''BuildLeadFieldSourcesFromElectricCurrentMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: LeadField :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Assign data to a field. ====Detailed Description==== Version Date: June 2001 Version: 1.0 ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:CalculateMisfitField 0 1167 3306 2006-10-31T00:19:33Z Blackham 44 wikitext text/x-wiki =='''CalculateMisfitField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: LeadField :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Summary not available yet. ====Detailed Description==== Version Date: September 1999 Version: 1.0 ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:AbsorbSegFieldIslands 0 1168 3307 2006-10-31T00:19:56Z Blackham 44 wikitext text/x-wiki =='''AbsorbSegFieldIslands'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Modeling :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create and process a segmented volume: erosion/dilation/open/close/absorb. ====Detailed Description==== Create and process a segmented volume: erosion/dilation/open/close/absorb. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertSegFieldToLatVol 0 1169 3308 2006-10-31T00:20:24Z Blackham 44 wikitext text/x-wiki =='''ConvertSegFieldToLatVol'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Modeling :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create a LatVolField from a SegLatVolField -- choose a quantity to store as the data. ====Detailed Description==== Create a LatVolField from a SegLatVolField -- choose a quantity to store as the data. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertSegFieldToSepSurfs 0 1170 3309 2006-10-31T00:21:05Z Blackham 44 wikitext text/x-wiki =='''ConvertSegFieldToSepSurfs'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Modeling :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create Separating surfaces from a SegLatVolField. ====Detailed Description==== Create Separating surfaces from a SegLatVolField. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ConvertSepSurfToQuadSurf 0 1171 3310 2006-10-31T00:21:21Z Blackham 44 wikitext text/x-wiki =='''ConvertSepSurfToQuadSurf'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Modeling :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Change the Separating Surface into a QuadSurf. ====Detailed Description==== Change the Separating Surface into a QuadSurf. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:GetSingleSurfaceFromSepSurfs 0 1172 3311 2006-10-31T00:21:47Z Blackham 44 wikitext text/x-wiki =='''GetSingleSurfaceFromSepSurfs'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Modeling :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Extract a single QuadSurf (one connected component) from a Separating Surface. ====Detailed Description==== Extract a single QuadSurf (one connected component) from a Separating Surface. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:SetConductivities 0 1173 3312 2006-10-31T00:22:11Z Blackham 44 wikitext text/x-wiki =='''SetConductivities'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Modeling :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Change the conductivity tensors in a field. ====Detailed Description==== SetConductivities is used to interactively change the conductivity tensors in a field. These tensors are then used by many BioPSE modules to create the support matrices that are then used to solve forward and inverse problems. The tensors are stored as a 'conductivities' property in the input and output fields. The fields should be of integer type and contain indices into this conductivities table. The indices start at value zero. Internally the table consists of a vector of entry pairs, each containing the tensor and a reference name. The 'Tensor Matrix' input port is optional. If there is an Nx9 or 9xN matrix present on that port, then default conductivities will be extracted from that matrix. Generating the GUI table can become intractable as the number of entries in the table grows. The default is to not generate the GUI table if there are more than 250 entries. You can force the GUI to update anyway by checking the "Force GUI Update" button. It is not recommended that you do so with more than a thousand or so entries. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:InterfaceWithNeuroFEMForward 0 1174 3313 2006-10-31T00:22:34Z Blackham 44 wikitext text/x-wiki =='''InterfaceWithNeuroFEMForward'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: NeuroFEM :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Invoke the NeuroFEM ipm program to solve the forward problem for the inputs. ====Detailed Description==== Invoke the NeuroFEM ipm program to solve the forward problem for the inputs. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:InterfaceWithNeuroFEMInverse 0 1175 3314 2006-10-31T00:23:56Z Blackham 44 wikitext text/x-wiki =='''InterfaceWithNeuroFEMInverse'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: NeuroFEM :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Invoke the NeuroFEM ipm program to solve the input problem for the inputs. ====Detailed Description==== Invoke the NeuroFEM ipm program to solve the input problem for the inputs. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ShowAndEditDipoles 0 1176 3315 2006-10-31T00:24:15Z Blackham 44 wikitext text/x-wiki =='''ShowAndEditDipoles'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Visualization :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Summary not available yet. ====Detailed Description==== Version Date: May 1999 Version: 1.0 ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:BioPSE:ViewLeadSignals 0 1177 3316 2006-10-31T00:24:32Z Blackham 44 wikitext text/x-wiki =='''ViewLeadSignals'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Visualization :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ViewLeadSignals module graphs a Matrix that has rows of potentials. ====Detailed Description==== The input matrix is rendered by interpreting each row in the matrix as a time series of values. So if you have a mxn matrix, you will see m line graphs with n values per graph. If an upstream module has set the units and timescale appropriately, the x-axis is (time) is updated appropriately. Time units are displayed along the x-axis, where they are taken as a string from the properties in the Matrix. The ViewLeadSignals module properties are: time-units, time-start, and time-end time-units; a string that displays along the x-axis. The start and end time determine the values for time. The sliders at the top of the dialog are for choosing the row indecies that you wish to display. The Vertical Scale slider is for controlling the spacing that the graphs are drawn with, for example if you wish to render each lead in exaclty the same space, then set the Vertical Scale to 0.0. Dragging the yellow vertical bars in the graph window updates the value displayed for each lead on the left side of the graph, allowing for closer data inspection at each time step. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] CIBC:Documentation:SCIRun:Reference:Teem 0 1178 3317 2006-10-31T00:26:47Z Blackham 44 wikitext text/x-wiki =='''Teem Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Converters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Teem:ConvertColorMap2ToNrrd|ConvertColorMap2ToNrrd]] :Convert a ColorMap2 into a 256x512x4 floating point image nrrd. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ConvertColorMapToNrrd|ConvertColorMapToNrrd]] :Convert a SCIRun ColorMap to a Nrrd. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ConvertMatrixToNrrd|ConvertMatrixToNrrd]] :Convert a SCIRun Matrix to a single Nrrd in the case of a Dense or Column Matrix or convert a Sparse Row Matrix to three Nrrds (Data, Rows, and Columns). ;[[CIBC:Documentation:SCIRun:Reference:Teem:ConvertNrrdToColorMap2|ConvertNrrdToColorMap2]] :Load an Image and output it as a ColorMap2 ;[[CIBC:Documentation:SCIRun:Reference:Teem:ConvertNrrdToMatrix|ConvertNrrdToMatrix]] :Convert a combination of Nrrds to a SCIRun Matrix of type Column, Dense or Sparse. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ConvertNrrdToRasterField|ConvertNrrdToRasterField]] :Convert a combination of Nrrds to a SCIRun Field. This converter works on regular, unstructured and structured Data. If the module receives just Data, it will most likely be a regular Field (i.e. ScanLine, Image, LatVol). For structured and unstructured Fields, the data is optional. If Points but no Connections are given, a structured dataset will most likely be created (i.e. StructQuad, StructHex). If Points and Connections are given, an unstructured field will most likely be created (i.e. Curve, TriSurf, QuadSurf, TetVol, HexVol). If a Field is passed in, the module will try to use that Field's mesh. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ConvertRasterFieldToNrrd|ConvertRasterFieldToNrrd]] :Take the data from a field or fields and wrap it with a nrrd and pass it out. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:Teem:ExportImage|ExportImage]] :Output a Nrrd as an image file. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ImportImage|ImportImage]] :Use ImageMagick libraries to open neary any image file. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ImportNrrdFromAnalyze|ImportNrrdFromAnalyze]] :Convert Analyze data to the NRRD format which can be used in SCIRun networks. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ImportNrrdFromDicom|ImportNrrdFromDicom]] :Convert DICOM data to the NRRD format which can be used in SCIRun networks. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ReadNrrd|ReadNrrd]] :Open a raw nrrd or a SCIRun wrapped nrrd. ;[[CIBC:Documentation:SCIRun:Reference:Teem:WriteNrrd|WriteNrrd]] :Output the NrrdData object via Pio. ==='''Misc'''=== ;[[CIBC:Documentation:SCIRun:Reference:Teem:BuildNrrdGradients|BuildNrrdGradients]] :Compute the 3D gradient. ;[[CIBC:Documentation:SCIRun:Reference:Teem:BuildTextureWithGradientsFromNrrds|BuildTextureWithGradientsFromNrrds]] :Set up a volume texture from a 3D scalar nrrd. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ChooseNrrd|ChooseNrrd]] :ChooseNrrd takes in an arbitrary number of input Nrrds, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ClassifyHeadTissuesFromMultiMRI|ClassifyHeadTissuesFromMultiMRI]] :Tolga Tasdizen's MRI Tissue Classifier Code. ;[[CIBC:Documentation:SCIRun:Reference:Teem:MiscProbe|MiscProbe]] :This module adds the functionality of gage to SCIRun. ;[[CIBC:Documentation:SCIRun:Reference:Teem:ReportNrrdInfo|ReportNrrdInfo]] :ReportNrrdInfo is used to view the attributes of Nrrd's. ;[[CIBC:Documentation:SCIRun:Reference:Teem:SelectTimeStepFromNrrd|SelectTimeStepFromNrrd]] :The SelectTimeStepFromNrrd module allows users to select a single time step or column from a Misc that has a time axis. The user can also select a range of time indecies and send them to the output port one at a time. This module allows the user to animate Through a time series. ;[[CIBC:Documentation:SCIRun:Reference:Teem:SetNrrdProperty|SetNrrdProperty]] :Set a Property for a Nrrd. ==='''Tend'''=== ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendAnhist|TendAnhist]] :Generate barycentric histograms of anisotropy. The barycentric space used is either one of Westin's triple of spherical, linear, and planar anisotropy. The bin counts in the histogram are weighted by the confidence value. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendAnplot|TendAnplot]] :Graph anisotropy metric in barycentric coords. The metrics all vary from 0.0 to 1.0, and will be sampled in the lower right half of the image. The plane on which they are sampled is a surface of constant trace. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendAnscale|TendAnscale]] :Scale the anisotropic component of the tensors. This maintains the isotropic component of the tensor, and fixes either the trace or determinant, while scaling up (or down) the deviatoric component of the tensor. Good for exaggerating the shape of nearly isotropic tensors. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendAnvol|TendAnvol]] :Apply an anisotropy metric to a DT volume. The anisotropy value will be zero in the locations which don't meet the given confidence threshold. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendBmat|TendBmat]] :Calculate B-matrix given gradient directions. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEpireg|TendEpireg]] :Register diffusion-weighted echo-planar images. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEstim|TendEstim]] :Estimate tensors from a set of DW images. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEval|TendEval]] :Calculate one or more eigenvalues in a DT volume. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEvalAdd|TendEvalAdd]] :Modify shape by adding a constant to all eigenvalues. The orientation of the tensor is unchanged. Note that unlike tend anscale, this operation can completely change the shape of the tensor. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEvalClamp|TendEvalClamp]] :Modify shape by clamping eigenvalues in some range. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEvalPow|TendEvalPow]] :Modify shape by raising eigenvalues to some power. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEvec|TendEvec]] :Calculate one or more eigenvectors in a DT volume. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEvecRGB|TendEvecRGB]] :Make an RGB volume from an eigenvector and an anisotropy. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendEvq|TendEvq]] :Quantize directions of diffusion. Because VTK doesn't do multi-dimensional colormaps, we have to quantize directions of diffusion (usually just the principal eigenvector) in order to create the usual XYZ-RGB coloring. Because eigenvector directions are poorly defined in regions of low anisotropy, the length of the vector (pre-quantization) is modulated by anisotropy, requiring the selection of some anisotropy metric. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendExpand|TendExpand]] :Converts a 7-value DT volume to a 9-value DT volume. The 7-value tensor is confidence value followed by the unique tensor components (Dxx, Dxy, Dxz, Dyy, Dyz, Dzz). The 9-value tensor is the full matrix (Dxx, Dxy, Dxz, Dxy, Dyy, Dyz, Dxz, Dyz, Dzz), which is set to all zeros when the confidence is below the given threshold. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendFiber|TendFiber]] :Extract a single fiber tract, given a start point. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendMake|TendMake]] :Create DT volume from confidence and eigensystem. The input is in the form of three nrrds, one for confidence values (3D), one for eigenvalues (4D, three evals per voxel), and one for eigenvectors (4D, nine evec components per voxel). ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendNorm|TendNorm]] :Normalize tensor size. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendPoint|TendPoint]] :Describe everything about one sample in a DT volume. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendSatin|TendSatin]] :Generate a pretty synthetic DT volume. The surface of a sphere or torus is covered with either linear or planar anisotropic tensors, or somewhere in between. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendShrink|TendShrink]] :Converts a 9-value DT volume to a 7-value DT volume. The confidence value is set to 1.0 everwhere. You can unu spliced or nrrdSplice() something else in its place later. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendSim|TendSim]] :Simulate DW images from a tensor field. The output will be in the same form as the input to tend estim, , and the B matrix used is the output from tend bmat. The other required inputs are the reference (non-diffusion-weighted) anatomical scalar volume, and the corresponding volume of diffusion tensors. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendSlice|TendSlice]] :Slice 3D tensors to get slab/image of 3D/2D tensors. ;[[CIBC:Documentation:SCIRun:Reference:Teem:TendSten|TendSten]] :Calculate structure tensors from a scalar field. Not a diffusion tensor, but it is symmetric and positive-definate. ==='''UnuAtoM'''=== ;[[CIBC:Documentation:SCIRun:Reference:Teem:Unu1op|Unu1op]] :Unary operation on a nrrd. ;[[CIBC:Documentation:SCIRun:Reference:Teem:Unu2op|Unu2op]] :Binary operation on two nrrds, or on a nrrd and a constant. Either the first or second operand can be a float constant, but not both. To perform the operation on two nrrds, connect both input ports. To have one Nrrd on the left hand side of the operator, connect to the first port and vice versa for the right hand side. ;[[CIBC:Documentation:SCIRun:Reference:Teem:Unu3op|Unu3op]] :Ternary operation on three nrrds or constants. Can have one, two, or three nrrds, but not zero. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuAxdelete|UnuAxdelete]] :Remove one or more singleton axes from a nrrd. Singleton axes have only a single sample along them. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted downwards as needed. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuAxinfo|UnuAxinfo]] :Modify attributes of a nrrd for a given axis. The only attributes which are set are the label, kind, minimum and maximum values, spacing, and spaceDirection. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuAxinsert|UnuAxinsert]] :Add a stub (length 1) axis to a nrrd. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted upwards as needed. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuAxmerge|UnuAxmerge]] :Merge two adjacent axes into one. A more general version of unu axdelete. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted downwards as needed. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuAxsplit|UnuAxsplit]] :Split one axis into two axes. More general version of unu axinsert, since a given axis can be split into fast and slow axes of arbitrary size, as long as the product of the fast and slow sizes is the same as the original size. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuCCadj|UnuCCadj]] :Form adjecency matrix of connected components. This operates on the output of ccfind. Output is unsigned char array containing 1 at locations (I,J) and (J,I) if CCs with ids I and J are adjacent, according to the chosen style of adjacency. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuCCfind|UnuCCfind]] :Find connected components (CCs). This works on 1-byte and 2-byte integral values, as well as 4-byte ints. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuCCmerge|UnuCCmerge]] :Merge CCs with their neighbors, under various contraints. This operates on the output of "ccfind". Merging of a CC is always done into its largest neighbor. Whether or not to merge can be constrained by one or more of: CC size (-s), original CC value being brighter or darker (-d), and number of neighbors (-n). ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuCCsettle|UnuCCsettle]] :Remap CC values down to lowest contiguous values. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuCmedian|UnuCmedian]] :Cheap histogram-based median filtering ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuConvert|UnuConvert]] : ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuCrop|UnuCrop]] :Create an output nrrd that is a subsample of the original. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuDhisto|UnuDhisto]] :Create (PGM) image of 1-D value histogram ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuFlip|UnuFlip]] :Reverse order of slices along one axis. Special case of unu shuffle. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuGamma|UnuGamma]] :Brighten or darken values with a gamma. Just as in xv, the gamma value here is actually the reciprocal of the exponent actually used to transform the values. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuHeq|UnuHeq]] :Perform histogram equalization. If this seems to be doing nothing, try increasing the number of histograms bins by an order of magnitude or two (or more). Or, use "unu gamma" to warp the values in the direction you know they need to go. Either of these might work because extremely tall and narrow peaks in the equalization histogram will produce poor results. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuHistax|UnuHistax]] :Replace each scanline along an axis with its histogram. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuHisto|UnuHisto]] :Create 1-D histogram of values in a nrrd. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuImap|UnuImap]] :Map nrrd through *irregular* univariate map (colormap). A map is irregular if the control points are not evenly spaced along the domain, and hence their position must be explicitly represented in the map. As nrrds, these maps are necessarily 2D. Along axis 0, the first value is the location of the control point, and the remaining values give are the range of the map for that control point. The output value(s) is the result of linearly interpolating between value(s) from the map. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuInset|UnuInset]] :Replace a sub-region with a different nrrd. This is functionally the opposite of crop. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuJhisto|UnuJhisto]] :Create joint histogram of two or more nrrds. Each axis of the output corresponds to one of the input nrrds, and each bin in the output records the number of corresponding positions in the inputs with a combination of values represented by the coordinates of the bin. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuJoin|UnuJoin]] :module interface for nrrdJoin function. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuLut|UnuLut]] :Map nrrd through univariate lookup table (itself represented as a nrrd). The lookup table can be 1D, in which case the output has the same dimension as the input, or 2D, in which case the output has one more dimension than the input, and each value is mapped to a scanline (along axis 0) from the lookup table. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuMake|UnuMake]] :Create a nrrd (or nrrd header) from scratch. The data can be in one or more files, or coming from stdin. This provides an easy way of providing the bare minimum information about some data so as to wrap it in a nrrd, either to pass on for further unu processing, or to save to disk. However, with -h , this creates only a detached nrrd header file, without ever reading or writing data. When reading multiple files, each file must contain the data for one slice along the slowest axis. Nearly all the options below refer to the finished nrrd resulting from joining all the slices together, with the exception of -ls , -bs , and -e , which apply to every input slice file. When reading data from many seperate files, it may be easier to put their filenames in a response file; there can be one or more filenames per line of the response file. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuMinmax|UnuMinmax]] :Print out min max values in one or more nrrds ==='''UnuNtoZ'''=== ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuPad|UnuPad]] :Pad the size of a nrrd along its axes. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuPermute|UnuPermute]] :Specify axes to be swapped with eachother ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuProject|UnuProject]] : ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuQuantize|UnuQuantize]] :Quantize values into 8, 16, 32 bit values. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuResample|UnuResample]] :Resample a nrrd to a new size. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuReshape|UnuReshape]] :Superficially change dimension and/or axes sizes. The underlying linear ordering of the samples is unchanged, but the reported dimension or axes sizes are changed. Identical in concept to Matlab's reshape command. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuRmap|UnuRmap]] :Map nrrd through *regular* univariate map (colormap). A map is regular if the control points are evenly spaced along the domain, and hence their position isn't explicitly represented in the map; the axis min, axis max, and number of points determine their location. The map can be a 1D nrrd (for grayscale), in which case the output has the same dimension as the input, or a 2D nrrd (for color), in which case the output has one more dimension than the input. In either case, the output is the result of linearly interpolating between map points, either scalar values (grayscale), or scanlines along axis 0 (color). ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuRmapN|UnuRmapN]] :Map nrrd through *regular* univariate map (colormap). A map is regular if the control points are evenly spaced along the domain, and hence their position isn't explicitly represented in the map; the axis min, axis max, and number of points determine their location. This is an N dimensional mapping in that the fast axis of the nrrd is used to look up coordinates in the N or N+1 map. If the map is of dimension N then it is assumed to be grayscale, otherwise all of the fast axis is treated as a 'color'. This module does no interpolation, rather the nrrd coordinates should exactly match the range of the colormap nrrd dimensions, ie 0-255 for a 1D map of size 256. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuSave|UnuSave]] :Write nrrd with specific format, encoding, or endianness. EPS output is a EPSF-3.0 file with BoundingBox and HiResBoundingBox DSC comments, and is suitable for inclusion into other PostScript documents. As a stand-alone file, the image is conveniently centered on an 8.5x11 inch page, with 0.5 inch margins. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuShuffle|UnuShuffle]] :Permute slices along one axis. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuSlice|UnuSlice]] : ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuSplice|UnuSplice]] :Replace a slice with a different nrrd. This is functionally the opposite of slice. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuSwap|UnuSwap]] :Interchange scan-line ordering of two axes. Special case of unu permute. ;[[CIBC:Documentation:SCIRun:Reference:Teem:UnuUnquantize|UnuUnquantize]] :Recover floating point values from quantized data. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference 0 1089 3229 1543 2006-11-01T02:22:37Z Blackham 44 /* '''Module Reference''' */ wikitext text/x-wiki =='''Module Reference'''== '''SCIRun''' ;[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun Modules]] :Reference documentation on all modules inside the Core of SCIRun '''Packages (stable)''' ;[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE Modules]] :This extension package has modules for doing bioelectic field calculations ;[[CIBC:Documentation:SCIRun:Reference:Insight|Insight Modules]] :This extension package contains an interface to the Insight ToolKit ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface Modules]] :This extension package contains an interface to Matlab ;[[CIBC:Documentation:SCIRun:Reference:Teem|Teem Modules]] :This extension package contains an interface to the Teem library '''Packages (under development)''' ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface Modules]] :This extension package contains an interface to the CardioWave simulator ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation Modules]] :A sandbox containing modeling and meshing tools, that ultimately will be integrated in the core of SCIRun ---- ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol 0 1179 3318 2006-11-01T02:31:08Z Blackham 44 wikitext text/x-wiki =='''ConvertHexVolToTetVol'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a HexVolField into a TetVolField. ====Detailed Description==== Given a Hex field (or anything that supports the same interface) as input, produce a TetVol as output -- each Hex element gets split into 5 Tets. In order to produce consistent splits across faces, we alternate between two different templates for how to do the split. Currently HexVolMesh, StructHexVolMesh, and LatVolMesh fields can be converted into TetVolMeshes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV 0 1180 3319 2006-11-01T02:31:45Z Blackham 44 wikitext text/x-wiki =='''ConvertMLVtoHV'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Chris Moulding :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a LatVolField to a HexVolField ====Detailed Description==== Convert a LatVolField to a HexVolField ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem 0 1181 3320 2006-11-01T02:32:10Z Blackham 44 wikitext text/x-wiki =='''ConvertMeshCoordinateSystem'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud 0 1182 3321 2006-11-01T02:32:28Z Blackham 44 wikitext text/x-wiki =='''ConvertMeshToPointCloud'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a structured field into an unstructured field for editing. ====Detailed Description==== This converts a LatVolField into a HexVolField, an ImageField into a QuadSurfField, or a ScanlineField into a CurveField. The structured meshes are not editable, as that operation does not preserve structure. Data values and locations are preserved in the transformation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh 0 1183 3322 2006-11-01T02:32:55Z Blackham 44 wikitext text/x-wiki =='''ConvertMeshToUnstructuredMesh'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a structured field into an unstructured field for editing. ====Detailed Description==== This converts a LatVolField into a HexVolField, an ImageField into a QuadSurfField, or a ScanlineField into a CurveField. The structured meshes are not editable, as that operation does not preserve structure. Data values and locations are preserved in the transformation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf 0 1184 3323 2006-11-01T02:33:17Z Blackham 44 wikitext text/x-wiki =='''ConvertQuadSurfToTriSurf'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a QuadSurfField into a TriSurfField. ====Detailed Description==== Given a QuadSurfField (or anything that supports the same interface) as input, produce a TriSurfField as output -- each Quad element gets split into 2 Tris. In order to produce consistent splits across faces, we alternate between two different templates for how to do the split. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh 0 1185 3324 2006-11-01T02:33:38Z Blackham 44 wikitext text/x-wiki =='''ConvertRasterMeshToStructuredMesh'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a regular lattice field into an structured field. ====Detailed Description==== This converts a LatVolField into a StructHexVolField, an ImageField into a StructQuadSurfField, or a ScanlineField into a StructCurveField. Data values and locations are preserved in the transformation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV 0 1186 3325 2006-11-01T02:34:03Z Blackham 44 wikitext text/x-wiki =='''ConvertTVtoMLV'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Chris Moulding :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a TetVolField to a MaskedLatVolField ====Detailed Description==== ConvertTVtoMLV will create a regular grid representation of a TetVolField. First it creates a XxYxZ MaskedLatVolField specified by the dimensions in the GUI. Then it scales and transform the field to envelop the input TetVolField. Then it masks out any rectangular elements that do not intersect with the input TetVolField. All Values are then interpolated to the new field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox 0 1187 3326 2006-11-01T02:34:21Z Blackham 44 wikitext text/x-wiki =='''EditMeshBoundingBox'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== EditMeshBoundingBox is used to transform the field geometry. ====Detailed Description==== EditMeshBoundingBox can trasform the field geometry via the UI or a widget attached to a MODULE REFERENCE window. The output field is the transformed input field. The output matrix is the resultant transformation matrix used to transform the field. It can be used to transform other fields in SCIRun. The UI can change the center and the size of the output field. Check the box next to the output attribute you wish to modify. The 'Copy Input to Output' button will reset the output values to the input values. To interactively transform the input field you must attach the Widget Port (the middle output port) to the viewer window. To move the widget: Shift+LeftClick on the edges of the widget frame and move the transformation box around. To scale the widget: Shift+LeftClick on the spheres located on each face of the widget and drag. This will scale the output field in a direction normal to the face the sphere is located on. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate 0 1188 3327 2006-11-01T02:34:46Z Blackham 44 wikitext text/x-wiki =='''MapFieldDataToNodeCoordinate'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Replace a mesh coordinate with the scalar fdata values. ====Detailed Description==== For unstructured data (HexVol, TetVol, QuadSurf, TriSurf, Curve, PointCloud) change the positions of the nodes by replacing one of the coordinates with the Field data. (Note: this is obviously only supported for scalar data types.) Per Allen's request, for surface meshes, also support "pushing" the nodes by (normal x data). This module is useful for turning cutting planes into heightfields, and for "inflating/deflating" surfaces. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh 0 1189 3328 2006-11-01T02:35:12Z Blackham 44 wikitext text/x-wiki =='''SmoothMesh'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Jason Shepherd :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Nodal movement to improve mesh quality. ====Detailed Description==== The SmoothMesh module is used to move various nodes in a mesh in an attempt to improve the overall mesh quality. The TSTT MESQUITE library is the work-horse for this module. (see http://www.cs.sandia.gov/optimization/knupp/Mesquite.html and/or http://www.tstt-scidac.org/research/mesquite.html for more information, or http://software.sandia.gov to download the MESQUITE library.) Only TetVol, HexVol, TriSurf, and QuadSurf meshes are currently supported by this module. It is important that the triangles are oriented consistently when smoothing a TriSurfMesh. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries 0 1190 3329 2006-11-01T02:35:30Z Blackham 44 wikitext text/x-wiki =='''SwapNodeLocationsWithMatrixEntries'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Extract and change the positions of the nodes in a mesh. ====Detailed Description==== This module performs two simultanious operations. First the locations of all the nodes in the "Input Field" are extracted into a matrix and sent to the "Output Matrix" port as an Nx3 matrix, where N is the number of nodes in the field. The positions are sent in xyz order. This first operation works on any field type because it does not make changes to the field. The second operation is optional. If an "Input Matrix" is available then a new field is constructed containing a copy of the "Input Field" except that the node locations are replaced by the position data in the "Input Matrix". The "Input Matrix" is expected to be Nx3, where N is the number of nodes in the field and the three columns represent xyz positions. This operation requires the "Input Field" to be an editable mesh type. The MODULE REFERENCE module can be used to make uneditable meshes editable. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:ModelCreation 0 1191 3330 2006-11-01T03:06:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ModelCreation Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''BreakPoint'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertBundleBreakPoint|InsertBundleBreakPoint]] :BreakPoint of Bundle flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertFieldBreakPoint|InsertFieldBreakPoint]] :BreakPoint of Field flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertMatrixBreakPoint|InsertMatrixBreakPoint]] :BreakPoint of Matrix flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertStringBreakPoint|InsertStringBreakPoint]] :BreakPoint of String flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateDistanceToField|CalculateDistanceToField]] :This module computes the minimum distance between the object and the nodes in field or the center of the elements. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateDistanceToFieldBoundary|CalculateDistanceToFieldBoundary]] :This module computes the minimum distance between the boundary of the field and the nodes in field or the center of the elements. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateFieldData|CalculateFieldData]] :This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateInsideWhichField|CalculateInsideWhichField]] :This module detects whether a node or a cell is inside any of the object fields. The output field will be indexed according to the object it is in starting with index 1. Index 0 reserved for the part of the field not in any of the object fields. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateIsInsideField|CalculateIsInsideField]] :This module determines whether the points or the center of the elements are located within a volume defined by a volume mesh or by a closed surface. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateSignedDistanceToField|CalculateSignedDistanceToField]] :This function needs an object field that is a volume or a closed surface. When inside the object the distance field is positive, when outside it is negative. The module will fail for not close surfaces as one cannot define inside and outside. Similarly this function will not work for objects that are lines or points. Use the DistanceToField module for these objects. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ComputeChangeFieldData|ComputeChangeFieldData]] :This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertIndicesToFieldData|ConvertIndicesToFieldData]] :This module takes a field with inidices and puts the data indexed from a matrix in the field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMappingMatrixToFieldData|ConvertMappingMatrixToFieldData]] :This module puts the index of the original field onto the field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateFieldData|CreateFieldData]] :This module creates data for a mesh. The module takes in a field, whose field data is discarded and a new field is generated basis on the same mesh. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:GetFieldData|GetFieldData]] :Get the data from the field and put it into a matrix. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:MapCurrentDensityOntoField|MapCurrentDensityOntoField]] :This module maps potentials and conductivities into a current density field. The module samples the underlying fields and averages or integrates the data and puts the result on the elements of the output mesh. The module has the option to do the dot product with the current density field as well for surface destination meshes. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:MapFieldDataFromElemToNode|MapFieldDataFromElemToNode]] :Compute the value of the nodes based on the data from the adjoining elements. This module supports various operations to map element data to node data. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:MapFieldDataFromNodeToElem|MapFieldDataFromNodeToElem]] :Compute the value of the elements based on the data from the adjoining elements. This module supports various operations to map node data to element data. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:MapFieldDataGradientOntoField|MapFieldDataGradientOntoField]] :This module maps the gradient on the destination field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:MapFieldDataOntoFieldNodes|MapFieldDataOntoFieldNodes]] :This module takes a source field and maps it onto a destiation field. The module projects the data onto the nodes of the destination mesh. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportFieldDataMeasures|ReportFieldDataMeasures]] :Calculate Sum, Average, Minimum, Maximum, etc of the field data. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:SelectAndSetChangeFieldData|SelectAndSetChangeFieldData]] :This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:SelectAndSetFieldData|SelectAndSetFieldData]] :This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:SetFieldData|SetFieldData]] :Extract data from the matrix and insert it into the field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateLinkBetweenOppositeFieldBoundaries|CalculateLinkBetweenOppositeFieldBoundaries]] :This module will build a table which will indicate which nodes at the edges are connected to the opposite edges. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateMeshNodes|CalculateMeshNodes]] :This module computes a new node location based upon a combination of scalars, vectors, and tensors and other node positions. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a field into a PointCloud field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMeshToTetVol|ConvertMeshToTetVol]] :Convert a field into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMeshToTriSurf|ConvertMeshToTriSurf]] :This module converts a field into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertToUnstructuredMesh|ConvertToUnstructuredMesh]] :This module converts a field with a regular mesh into a field with an unstructured mesh. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:FindClosestNodeIndex|FindClosestNodeIndex]] :Find an index per point of the closest node in the field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:FindClosestNodeIndexByValue|FindClosestNodeIndexByValue]] :Find an index per point of the closest node with given value in the field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:GetBoundingBox|GetBoundingBox]] :This module gets the bounding box of a field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:MergeMeshNodes|MergeMeshNodes]] :Merge nodes that are close together and remove double elements. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ScaleFieldMeshAndData|ScaleFieldMeshAndData]] :Scale Data and Geometry to match units. ==='''Converter'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMatricesToDipoleField|ConvertMatricesToDipoleField]] :This module takes a matrix with locations and strengths and converts it into a pointcloud field with vectors. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMatrixToField|ConvertMatrixToField]] :Convert a Matrix into a ImageMesh. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMatrixToString|ConvertMatrixToString]] :ConvertMatrixToString prints the contents of a matrix into a string. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertNrrdToField|ConvertNrrdToField]] :Convert a NRRD into a SCIRun Field object. ==='''CreateField'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ClipFieldByFunction|ClipFieldByFunction]] :This module can be used to clip of parts of a mesh, using a function which defines which parts are inside and which parts are outside of the clipping range. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ClipFieldByMesh|ClipFieldByMesh]] :This module Clips a field by taking all the elements that are inside the object field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ClipFieldBySelectionMask|ClipFieldBySelectionMask]] :Clip away the section of the mesh that is not selected in the SelectionMask. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CollectFields|CollectFields]] :Collect the fields that are fed into the module. The field will be added to the output field. The module has a buffer with a first in, first out behavior to keep a history of fields in the buffer. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:GetDomainBoundary|GetDomainBoundary]] :This module will extract the inner and outer boundaries from a mesh. An inner boundary is defined as the boundary between different regions with a different value on the elements. The outer boundary is the boundary that surround the mesh. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:GetFieldBoundary|GetFieldBoundary]] :A GetFieldBoundary version that works for all fields. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:MergeFields|MergeFields]] :MergeFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:MergeMeshes|MergeMeshes]] :MergeFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:SplitAndMergeFieldByDomain|SplitAndMergeFieldByDomain]] :This module uses the data at the elements to split the mesh into segements that all have the same element data. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:SplitFieldByConnectedRegion|SplitFieldByConnectedRegion]] :This module splits a field into a series of fields in which every field contains a segment of the field that was not topologically connected to the other parts of the field. ==='''DataArrayMath'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:AppendDataArrays|AppendDataArrays]] :This module appends various data arrays together. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateDataArray|CalculateDataArray]] :This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateDataArray|CreateDataArray]] :This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateDataArrayFromIndices|CreateDataArrayFromIndices]] :This module takes the elements of the input array and reorders them according to order specified in the index vector. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateTensorArray|CreateTensorArray]] :This module creates a N by 9 matrix describing tensors. The tensors are constructed out of two orthogonal N by 3 arrays describing the eigenvectors for the system and 3 column vectors describing the eigen values. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateVectorArray|CreateVectorArray]] :This module creates a vector out of arrays of scalars. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:DecomposeTensorArrayIntoEigenVectors|DecomposeTensorArrayIntoEigenVectors]] :This module decomposes the a N by 9 Matrix, representing an array of tensors into three N by 3 matrices which contain the eigen vectors of the system, numbered from the most significant to the least significant and three column vectors representing the three eigen values of the tensor. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReplicateDataArray|ReplicateDataArray]] :This module takes a ScalarArray, VectorArray or TensorArray and replicates it n-fold. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportDataArrayMeasure|ReportDataArrayMeasure]] :This module calculates a measure of the array. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:SplitVectorArrayInXYZ|SplitVectorArrayInXYZ]] :Decomposed the vector in the three cartesian coordinates. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadBundle|ReadBundle]] :This module reads a bundle from disk. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadColorMap|ReadColorMap]] :The ColorMap Read a persistent colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadColorMap2D|ReadColorMap2D]] :The ColorMap2 Read a persistent 2D colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadField|ReadField]] :ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadMatrix|ReadMatrix]] :The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadPath|ReadPath]] :The ReadPath module reads a persistent camera path from a file. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadString|ReadString]] :This module reads a text file into a string. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteBundle|WriteBundle]] :This module writes a bundle to disk. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteColorMap|WriteColorMap]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteColorMap2D|WriteColorMap2D]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteField|WriteField]] :Saves persistent field objects received from upstream modules. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteMatrix|WriteMatrix]] :The WriteMatrix modules saves a persistent representation of a matrix to disk. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:WritePath|WritePath]] :The WritePath module saves persistent representation of a path to a file. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteString|WriteString]] :This module writes a text file with the contents of the string. ==='''DataStreaming'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:StreamMatrixFromDisk|StreamMatrixFromDisk]] :Stream Data from a file on disk without loading the data into memory. ==='''ExampleFields'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:GenerateSphericalSurface|GenerateSphericalSurface]] :This module creates an example spherical surface. ==='''FieldProperty'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:GetMatrixFromFieldProperties|GetMatrixFromFieldProperties]] :This module retrieves a matrix property from a field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:GetStringFromFieldProperties|GetStringFromFieldProperties]] :This module retrieves a string property from a field. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertMatrixIntoFieldProperties|InsertMatrixIntoFieldProperties]] :This module adds a 'matrix' object as a field property. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertStringIntoFieldProperties|InsertStringIntoFieldProperties]] :This module adds a 'string' object as a field property. ==='''FieldsData'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ModalMapping|ModalMapping]] :This module takes a source field and maps it onto a destiation field. The module projects the data onto the elements of the destination mesh. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:SelectByFieldData|SelectByFieldData]] :This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:SelectByFieldsData|SelectByFieldsData]] :This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ==='''FiniteElements'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:BuildFEMatrix|BuildFEMatrix]] :This module builds the Finite Element Method stiffness matrix. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateFEDirichletBC|CreateFEDirichletBC]] :This module creates a Dirichlet boundary condition. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateLinkBetweenMeshAndCompGrid|CreateLinkBetweenMeshAndCompGrid]] :This module computes how nodes should be merged over the boundary. It calculates the needed ordering in the computational grid. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateLinkBetweenMeshAndCompGridByDomain|CreateLinkBetweenMeshAndCompGridByDomain]] :This module computes how nodes should be merged over the boundary. It calculates the needed ordering in the computational grid. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:AppendMatrix|AppendMatrix]] :Append a matrix to a base matrix. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:GetSubMatrix|GetSubMatrix]] :Get a submatrix from a matrix by selecting row and column indices. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReorderMatrixByCuthillMcKee|ReorderMatrixByCuthillMcKee]] :This module reorders the rows and columns of a square matrix according to the CutHill-McKee scheme in order to reduce the bandwidth of the matrix. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReorderMatrixByReverseCuthillMcKee|ReorderMatrixByReverseCuthillMcKee]] :This module reorders the rows and columns of a square matrix according to the reverse CutHill-McKee scheme in order to reduce the bandwidth of the matrix. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportMatrixColumnMeasure|ReportMatrixColumnMeasure]] :Apply an operator on each column of the matrix. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportMatrixRowMeasure|ReportMatrixRowMeasure]] :Apply an operator on each row of the matrix. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ResizeMatrix|ResizeMatrix]] :This module resizes a matrix. ==='''ReportInfo'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportDataArrayInfo|ReportDataArrayInfo]] :Get information on a matrix used as a ScalarArray, VectorArray, or TensorArray. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ==='''Script'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ManageParameterMatrix|ManageParameterMatrix]] :This module gets a matrix from a ParameterList. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ManageParameterString|ManageParameterString]] :This module gets a String from a ParameterList. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ParameterList|ParameterList]] :This module allows for creation a bundle with strings, scalars, vectors, and tensors as components. Each component has a name and can be extracte out of the bundle. ==='''SelectionMask'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertIndicesToSelectionMask|ConvertIndicesToSelectionMask]] :This function converts a list of indices into a SelectionMask. The module needs to know the length of the selection mask in order to know what the biggest index is. (This one is not necessarily selected) ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertSelectionMaskToIndices|ConvertSelectionMaskToIndices]] :This function converts the SelectionMask into a list of all activated elements. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:DoSelctionMaskOR|DoSelctionMaskOR]] :Boolean OR operation on a series of selection masks. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:DoSelctionMaskXOR|DoSelctionMaskXOR]] :Exclusive OR operation on two selection masks. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:DoSelectionMaskAND|DoSelectionMaskAND]] :Boolean AND operation on a series of selection masks. ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:DoSelectionMaskNOT|DoSelectionMaskNOT]] :Inverts a selection. Nodes that were not selected get selection and nodes that were selected get deselected. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertTimeToWeightedIndices|ConvertTimeToWeightedIndices]] :This module calculates a weights vector to do a linear interpolation between two time frames. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:ModelCreation:AppendDataArrays 0 1235 3374 2006-11-01T03:52:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''AppendDataArrays'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module appends various data arrays together. ====Detailed Description==== A data array is a dense matrix that represents an array of scalars, vectors, or tensors. Each row in the matrix represents one scalar, one vector or one tensor. The number of columns in the matrix is one for an array of scalars, three for an array of vectors, or six or nine for an array of tensors. This module takes several of these matrices and appends the subsequent at the bottom of the matrix, expanding the array. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:AppendMatrix 0 1236 3375 2006-11-01T03:52:36Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''AppendMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Math :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Append a matrix to a base matrix. ====Detailed Description==== Append a matrix to a base matrix. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:BuildFEMatrix 0 1239 3378 2006-11-01T03:52:47Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildFEMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FiniteElements :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module builds the Finite Element Method stiffness matrix. ====Detailed Description==== ==== Module Description ==== This module builds the Finite Element Stiffness matrix for a certain field. It will assume the data on the field will describe the conductivity of the medium. Currently there are two ways of specifying a conductivity for a domain. One can use the values assigned to the field as scalar isotropic conductivities or as tensor anisotropic ocnductivities. The second method is to attach a conductivity table to the module. In this case the values in the field are assumed to be indices into the conductivity table. The conductivity table is a m by 6 matrix or an m by 9 matrix depending on how many coefficients of the symmetric tensor are given. Note that in case 9 are given, three values will not be used as they have to be symmetric entries. The ordering for the table using 6 values is, xx, xy, xz, yy, zy, and zz. The module is also able use a different node ordering in the computational space. For a different ordering in the computational space, one should add a GeomToComp mapping matrix (From Geometrical mesh to Computational grid). This mapping matrix describes how the geometrical space is mapped into the comptutational space. If no mapping is given the node ordering in the input field is used. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateDataArray 0 1243 3382 2006-11-01T03:53:08Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateDataArray'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ====Detailed Description==== ====Overview==== This module lets the user compute a new scalar, vector, or tensor array. A scalar array is a nx1 matrix, a vector array is a nx3 matrix, and a tensor array is a nx6 or nx9 matrix (A nx6 tensor is defined as xx, xy, xz, yy, yz, zz). These matrices are used to store scalar, vector or tensor data associated with a mesh or field. To compute new scalar, vector or tensor values one has to supply a user-defined function that computes the new values. This function can be either supplied through the GUI or it can be supplied as a string. The module loops through each array element and uses the user-defined function to compute a new value. The output in this case is a function of scalar, vector, or tensor arrays. The function is applied by taking the next element of each array and applying the function to these variables. When the array size of one of the input variables is 1, it is assumed to be a constant value and it is taken each time the module gets a value from that array. The final size of the array is determined by the size of the other input arrays, or by the separate size input port. The latter is supplied in case all inputs are of size one, in which case the module needs a way to determine the size of the output. ====Input elements==== There are several input elements available to compute a new scalar values. A short list is displayed below. INDEX: The index number, which is the row index. Indexing starts at 0. SIZE: The size of the of the new array. A,B,C, ...: Matrices representing either scalar, vector, or tensor arrays. A scalar array is a nx1 matrix with scalar values, a vector array is a nx3 matrix and a tensor array is either a nx6 or nx9 matrix. In case of 6 elements they are stored in the following order: xx,xy,xz,yy,yz, and zz. The number of elements in each array can be either one or the number of scalars in the array. In case only one element is given, it is assumed to be a constant that applies to all data elements. This module allows up to 26 different matrices to be used. ====Output elements==== The output is stored in the variable RESULT. ====See Also ==== MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToField 0 1244 1871 2006-11-01T03:53:14Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateDistanceToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes the minimum distance between the object and the nodes in field or the center of the elements. ====Detailed Description==== This module computes the minimum distance between the object and the nodes in field or the center of the elements. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToFieldBoundary 0 1245 1980 2006-11-01T03:53:19Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateDistanceToFieldBoundary'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes the minimum distance between the boundary of the field and the nodes in field or the center of the elements. ====Detailed Description==== This module computes the minimum distance between the boundary of the field and the nodes in field or the center of the elements. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateFieldData 0 1246 3385 2006-11-01T03:53:23Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ====Detailed Description==== ====Overview==== This module lets the user compute a new scalar, vector, or tensor array. A scalar array is a nx1 matrix, a vector array is a nx3 matrix, and a tensor array is a nx6 or nx9 matrix (A nx6 tensor is defined as xx, xy, xz, yy, yz, zz). These matrices are used to store scalar, vector or tensor data associated with a mesh or field. To compute new scalar, vector or tensor values one has to supply a user-defined function that computes the new values. This function can be either supplied through the GUI or it can be supplied as a string. The module loops through each array element and uses the user-defined function to compute a new value. The output in this case is a function of scalar, vector, or tensor arrays. The function is applied by taking the next element of each array and applying the function to these variables. When the array size of one of the input variables is 1, it is assumed to be a constant value and it is taken each time the module gets a value from that array. The final size of the array is determined by the size of the other input arrays, or by the separate size input port. The latter is supplied in case all inputs are of size one, in which case the module needs a way to determine the size of the output. ====Input elements==== There are several input elements available to compute a new scalar values. A short list is displayed below. INDEX: The index number, which is the row index. Indexing starts at 0. SIZE: The size of the of the new array. A,B,C, ...: Matrices representing either scalar, vector, or tensor arrays. A scalar array is a nx1 matrix with scalar values, a vector array is a nx3 matrix and a tensor array is either a nx6 or nx9 matrix. In case of 6 elements they are stored in the following order: xx,xy,xz,yy,yz, and zz. The number of elements in each array can be either one or the number of scalars in the array. In case only one element is given, it is assumed to be a constant that applies to all data elements. This module allows up to 26 different matrices to be used. ====Output elements==== The output is stored in the variable RESULT. ====See Also ==== MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateInsideWhichField 0 1247 3386 2006-11-01T03:53:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateInsideWhichField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module detects whether a node or a cell is inside any of the object fields. The output field will be indexed according to the object it is in starting with index 1. Index 0 reserved for the part of the field not in any of the object fields. ====Detailed Description==== This module detects whether a node or a cell is inside any of the object fields. The output field will be indexed according to the object it is in starting with index 1. Index 0 reserved for the part of the field not in any of the object fields. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateIsInsideField 0 1248 3387 2006-11-01T03:53:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateIsInsideField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module determines whether the points or the center of the elements are located within a volume defined by a volume mesh or by a closed surface. ====Detailed Description==== This module determines whether nodes or the centers of the elements are located within a volume defined by a volume mesh or by a closed surface. If the input field has data on the elements the centers of the elements are tested for whethter they are inside the volume. This module assigns a 1.0 to every node or element that is inside the object field and 0.0 to every node or element that is outside. The module outputs the data both as a field and as a matrix. The latter is equal to a selection vector. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateLinkBetweenOppositeFieldBoundaries 0 1249 3388 2006-11-01T03:53:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateLinkBetweenOppositeFieldBoundaries'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module will build a table which will indicate which nodes at the edges are connected to the opposite edges. ====Detailed Description==== This module will build a table which will indicate which nodes at the edges are connected to the opposite edges. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateMeshNodes 0 1250 3389 2006-11-01T03:53:42Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateMeshNodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new node location based upon a combination of scalars, vectors, and tensors and other node positions. ====Detailed Description==== ====Overview==== This module lets the user compute a new scalar, vector, or tensor array. A scalar array is a nx1 matrix, a vector array is a nx3 matrix, and a tensor array is a nx6 or nx9 matrix (A nx6 tensor is defined as xx, xy, xz, yy, yz, zz). These matrices are used to store scalar, vector or tensor data associated with a mesh or field. To compute new scalar, vector or tensor values one has to supply a user-defined function that computes the new values. This function can be either supplied through the GUI or it can be supplied as a string. The module loops through each array element and uses the user-defined function to compute a new value. The output in this case is a function of scalar, vector, or tensor arrays. The function is applied by taking the next element of each array and applying the function to these variables. When the array size of one of the input variables is 1, it is assumed to be a constant value and it is taken each time the module gets a value from that array. The final size of the array is determined by the size of the other input arrays, or by the separate size input port. The latter is supplied in case all inputs are of size one, in which case the module needs a way to determine the size of the output. ====Input elements==== There are several input elements available to compute a new scalar values. A short list is displayed below. INDEX: The index number, which is the row index. Indexing starts at 0. SIZE: The size of the of the new array. A,B,C, ...: Matrices representing either scalar, vector, or tensor arrays. A scalar array is a nx1 matrix with scalar values, a vector array is a nx3 matrix and a tensor array is either a nx6 or nx9 matrix. In case of 6 elements they are stored in the following order: xx,xy,xz,yy,yz, and zz. The number of elements in each array can be either one or the number of scalars in the array. In case only one element is given, it is assumed to be a constant that applies to all data elements. This module allows up to 23 different matrices to be used. ====Output elements==== The output is stored in the variable NEWPOS. ====See Also ==== MODULE REFERENCE MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateSignedDistanceToField 0 1251 3390 2006-11-01T03:53:47Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateSignedDistanceToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This function needs an object field that is a volume or a closed surface. When inside the object the distance field is positive, when outside it is negative. The module will fail for not close surfaces as one cannot define inside and outside. Similarly this function will not work for objects that are lines or points. Use the DistanceToField module for these objects. ====Detailed Description==== This function needs an object field that is a volume or a closed surface. When inside the object the distance field is positive, when outside it is negative. The module will fail for not close surfaces as one cannot define inside and outside. Similarly this function will not work for objects that are lines or points. Use the DistanceToField module for these objects. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ClipFieldByFunction 0 1253 3392 2006-11-01T03:53:54Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipFieldByFunction'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module can be used to clip of parts of a mesh, using a function which defines which parts are inside and which parts are outside of the clipping range. ====Detailed Description==== This module can be used to clip of parts of a mesh, using a function which defines which parts are inside and which parts are outside of the clipping range. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ClipFieldByMesh 0 1254 3393 2006-11-01T03:53:58Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipFieldByMesh'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module Clips a field by taking all the elements that are inside the object field. ====Detailed Description==== This module Clips a field by taking all the elements that are inside the object field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ClipFieldBySelectionMask 0 1255 3394 2006-11-01T03:54:04Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipFieldBySelectionMask'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Clip away the section of the mesh that is not selected in the SelectionMask. ====Detailed Description==== Clip away the section of the mesh that is not selected in the SelectionMask. This function accepts both a selection of elements as well a selection of nodes. The module automatically detects whether elements are selected or nodes, depending on the size of the SelectionMask. If the number of elements is equal to the number of nodes, the basis order of the original field will determine hoe the SelectionMask is interpreted. The SelectionMask is a matrix column vector that has zeros for the element/nodes that are not selected and entries with a number not equal to zero for the elements/nodes that are selected. In case nodes are selected all elements are cut away that have not all nodes selected. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CollectFields 0 1256 3395 2006-11-01T03:54:08Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CollectFields'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Collect the fields that are fed into the module. The field will be added to the output field. The module has a buffer with a first in, first out behavior to keep a history of fields in the buffer. ====Detailed Description==== Collect the fields that are fed into the module. The field will be added to the output field. The module has a buffer with a first in, first out behavior to keep a history of fields in the buffer. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ComputeChangeFieldData 0 1263 3402 2006-11-01T03:54:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ComputeChangeFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ====Detailed Description==== ====Overview==== ====Input elements==== ====Output elements==== ====See Also ==== MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertIndicesToFieldData 0 1269 3408 2006-11-01T03:54:56Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertIndicesToFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module takes a field with inidices and puts the data indexed from a matrix in the field. ====Detailed Description==== This module takes a field with inidices and puts the data indexed from a matrix in the field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertIndicesToSelectionMask 0 1270 3409 2006-11-01T03:55:00Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertIndicesToSelectionMask'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: SelectionMask :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This function converts a list of indices into a SelectionMask. The module needs to know the length of the selection mask in order to know what the biggest index is. (This one is not necessarily selected) ====Detailed Description==== This function converts a list of indices into a SelectionMask. The module needs to know the length of the selection mask in order to know what the biggest index is. (This one is not necessarily selected) ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMappingMatrixToFieldData 0 1271 3410 2006-11-01T03:55:04Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMappingMatrixToFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module puts the index of the original field onto the field. ====Detailed Description==== A mapping amtrix is generated every time the nodes in the mesh are remapped. This module takes the mapping from the original mesh to the new mesh and puts the original node indices onto the data of the new mesh. The input of the module takes the newly created field and its mapping matrix and combines it again so the new field contains the numbers of the indices that refer to the old field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMatricesToDipoleField 0 1272 3411 2006-11-01T03:55:08Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMatricesToDipoleField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Converter :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module takes a matrix with locations and strengths and converts it into a pointcloud field with vectors. ====Detailed Description==== This module takes a matrix with locations and strengths and converts it into a pointcloud field with vectors. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMatrixToField 0 1273 3412 2006-11-01T03:55:12Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMatrixToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Converter :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a Matrix into a ImageMesh. ====Detailed Description==== Convert a Matrix into a ImageMesh. There are two ways of doing the conversion: (1) assuming every value in the matrix is a node value and hence creating a mesh with the values assigned to the nodes, or (2) assuming every value represents an element value. The module assumes a unitary spacing between the rows and colums of the matrix. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMatrixToString 0 1274 3413 2006-11-01T03:55:16Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMatrixToString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Converter :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ConvertMatrixToString prints the contents of a matrix into a string. ====Detailed Description==== ConvertMatrixToString prints the contents of a matrix into a string. For a dense matrix it outputs all the rows and columns of the matrix. For a sparse matrix only the non zero elements are printed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMeshToPointCloud 0 1275 3414 2006-11-01T03:55:20Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMeshToPointCloud'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a field into a PointCloud field. ====Detailed Description==== Convert a field into a PointCloud field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMeshToTetVol 0 1276 3415 2006-11-01T03:55:23Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMeshToTetVol'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a field into a TetVolField. ====Detailed Description==== Convert a field into a TetVolField. This is a more general implementation of HexToTet. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertMeshToTriSurf 0 1277 3416 2006-11-01T03:55:27Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMeshToTriSurf'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module converts a field into a TriSurfField. ====Detailed Description==== This module converts a field into a TriSurfField. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertNrrdToField 0 1278 3417 2006-11-01T03:55:31Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertNrrdToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Converter :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a NRRD into a SCIRun Field object. ====Detailed Description==== Convert a NRRD into a SCIRun Field object. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertSelectionMaskToIndices 0 1279 3418 2006-11-01T03:55:34Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertSelectionMaskToIndices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: SelectionMask :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This function converts the SelectionMask into a list of all activated elements. ====Detailed Description==== This function converts the SelectionMask into a list of all activated elements. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertTimeToWeightedIndices 0 1280 3419 2006-11-01T03:55:37Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertTimeToWeightedIndices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Time :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module calculates a weights vector to do a linear interpolation between two time frames. ====Detailed Description==== This module calculates a weights vector to do a linear interpolation between two time frames. This module is intended to convert results of a time adaptive simulation into a linearly interpolated time scale. The module needs as input a vector with the time instances of each frame in the dataset and the selected time. Depending on the actual selected time a matrix with one or two weights describing a linear interpolation between the two nearest time frames is returned. This module serves as input for StreamMatrix to combine multiple computational frames into a linearly interpolate frame. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ConvertToUnstructuredMesh 0 1284 3423 2006-11-01T03:55:52Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertToUnstructuredMesh'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module converts a field with a regular mesh into a field with an unstructured mesh. ====Detailed Description==== This module converts a mesh underlying a field from a representation in which the connectivity of the nodes is based on a regular grid to a representation in which the connectivity is not based on a regular grid. This module can be used for modules that do n ot yet deal with regular meshes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateDataArray 0 1285 3424 2006-11-01T03:55:57Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateDataArray'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ====Detailed Description==== ====Overview==== This module lets the user compute a new scalar, vector, or tensor array. A scalar array is a nx1 matrix, a vector array is a nx3 matrix, and a tensor array is a nx6 or nx9 matrix (A nx6 tensor is defined as xx, xy, xz, yy, yz, zz). These matrices are used to store scalar, vector or tensor data associated with a mesh or field. To compute new scalar, vector or tensor values one has to supply a user-defined function that computes the new values. This function can be either supplied through the GUI or it can be supplied as a string. The module loops through each array element and uses the user-defined function to compute a new value. The output in this case is a function of scalar, vector, or tensor arrays. The function is applied by taking the next element of each array and applying the function to these variables. When the array size of one of the input variables is 1, it is assumed to be a constant value and it is taken each time the module gets a value from that array. The final size of the array is determined by the size of the other input arrays, or by the separate size input port. The latter is supplied in case all inputs are of size one, in which case the module needs a way to determine the size of the output. ====Input elements==== There are several input elements available to compute a new scalar values. A short list is displayed below. INDEX: The index number, which is the row index. Indexing starts at 0. SIZE: The size of the of the new array. A,B,C, ...: Matrices representing either scalar, vector, or tensor arrays. A scalar array is a nx1 matrix with scalar values, a vector array is a nx3 matrix and a tensor array is either a nx6 or nx9 matrix. In case of 6 elements they are stored in the following order: xx,xy,xz,yy,yz, and zz. The number of elements in each array can be either one or the number of scalars in the array. In case only one element is given, it is assumed to be a constant that applies to all data elements. This module allows up to 26 different matrices to be used. ====Output elements==== The output is stored in the variable RESULT. ====See Also ==== MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateDataArrayFromIndices 0 1286 3425 2006-11-01T03:56:01Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateDataArrayFromIndices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module takes the elements of the input array and reorders them according to order specified in the index vector. ====Detailed Description==== ====Overview==== This module uses an index vector to reorder the elements of a scalar, vector or tensor array into a new array. The index vector indexes the points to the elements in the input array and creates a new matrix in which the elements are stored in the order which is indicated in the index vector. Index numbering starts at 0. ====See Also ==== MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateFEDirichletBC 0 1287 3426 2006-11-01T03:56:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateFEDirichletBC'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FiniteElements :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates a Dirichlet boundary condition. ====Detailed Description==== This module creates a Dirichlet boundary condition. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateFieldData 0 1288 3427 2006-11-01T03:56:08Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates data for a mesh. The module takes in a field, whose field data is discarded and a new field is generated basis on the same mesh. ====Detailed Description==== ====Overview==== This module lets the user compute a new scalar, vector, or tensor array. A scalar array is a nx1 matrix, a vector array is a nx3 matrix, and a tensor array is a nx6 or nx9 matrix (A nx6 tensor is defined as xx, xy, xz, yy, yz, zz). These matrices are used to store scalar, vector or tensor data associated with a mesh or field. To compute new scalar, vector or tensor values one has to supply a user-defined function that computes the new values. This function can be either supplied through the GUI or it can be supplied as a string. The module loops through each array element and uses the user-defined function to compute a new value. The output in this case is a function of scalar, vector, or tensor arrays. The function is applied by taking the next element of each array and applying the function to these variables. When the array size of one of the input variables is 1, it is assumed to be a constant value and it is taken each time the module gets a value from that array. The final size of the array is determined by the size of the other input arrays, or by the separate size input port. The latter is supplied in case all inputs are of size one, in which case the module needs a way to determine the size of the output. ====Input elements==== There are several input elements available to compute a new scalar values. A short list is displayed below. INDEX: The index number, which is the row index. Indexing starts at 0. SIZE: The size of the of the new array. A,B,C, ...: Matrices representing either scalar, vector, or tensor arrays. A scalar array is a nx1 matrix with scalar values, a vector array is a nx3 matrix and a tensor array is either a nx6 or nx9 matrix. In case of 6 elements they are stored in the following order: xx,xy,xz,yy,yz, and zz. The number of elements in each array can be either one or the number of scalars in the array. In case only one element is given, it is assumed to be a constant that applies to all data elements. This module allows up to 26 different matrices to be used. ====Output elements==== The output is stored in the variable RESULT. ====See Also ==== MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateLinkBetweenMeshAndCompGrid 0 1289 3428 2006-11-01T03:56:14Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateLinkBetweenMeshAndCompGrid'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FiniteElements :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes how nodes should be merged over the boundary. It calculates the needed ordering in the computational grid. ====Detailed Description==== This module computes how nodes should be merged over the boundary. It calculates the needed ordering in the computational grid. The output matrix GeomToComp maps the geometrical nodes to the computational nodes, the CompToGeom is the opposite mapping. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateLinkBetweenMeshAndCompGridByDomain 0 1290 3429 2006-11-01T03:56:19Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateLinkBetweenMeshAndCompGridByDomain'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FiniteElements :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes how nodes should be merged over the boundary. It calculates the needed ordering in the computational grid. ====Detailed Description==== This module computes how nodes should be merged over the boundary. It calculates the needed ordering in the computational grid. The output matrix GeomToComp maps the geometrical nodes to the computational nodes, the CompToGeom is the opposite mapping. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateTensorArray 0 1291 3430 2006-11-01T03:56:24Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateTensorArray'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates a N by 9 matrix describing tensors. The tensors are constructed out of two orthogonal N by 3 arrays describing the eigenvectors for the system and 3 column vectors describing the eigen values. ====Detailed Description==== This module can be used to compute the conductivity tensors of a field, based on the eigen vector decomposition of for instance DTI data. Each of the inputs can be matrix with N rows or with 1 row, in the latter case that value is assumed to be the same for all tensors. The first two inputs are the first two eigen vectors (the third is computed internally using a cross product). These are given as N by 3 arrays, where each row describes a [X,Y,Z] direction vector. The three remaining inputs are the eigen values (or the conductivities ) for the corresponding direction. This can be a scalar value to mark that this value is the same for all or this can be vector with N values, describing an individual value for each tensor. The output is a N by 9 matrix with the tensor entries on the rows of the matrix. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CreateVectorArray 0 1292 3431 2006-11-01T03:56:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateVectorArray'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates a vector out of arrays of scalars. ====Detailed Description==== This module creates a vector out of arrays of scalars. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:DecomposeTensorArrayIntoEigenVectors 0 1298 3437 2006-11-01T03:56:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DecomposeTensorArrayIntoEigenVectors'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module decomposes the a N by 9 Matrix, representing an array of tensors into three N by 3 matrices which contain the eigen vectors of the system, numbered from the most significant to the least significant and three column vectors representing the three eigen values of the tensor. ====Detailed Description==== This module decomposes the a N by 9 Matrix, representing an array of tensors into three N by 3 matrices which contain the eigen vectors of the system, numbered from the most significant to the least significant and three column vectors representing the three eigen values of the tensor. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:DoSelctionMaskOR 0 1302 3441 2006-11-01T03:57:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DoSelctionMaskOR'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: SelectionMask :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Boolean OR operation on a series of selection masks. ====Detailed Description==== Boolean OR operation on a series of selection masks. All the masks must be of the same size in order for this module to function properly. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:DoSelctionMaskXOR 0 1303 3442 2006-11-01T03:57:09Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DoSelctionMaskXOR'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: SelectionMask :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Exclusive OR operation on two selection masks. ====Detailed Description==== Exclusive OR operation on two selection masks. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:DoSelectionMaskAND 0 1304 3443 2006-11-01T03:57:12Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DoSelectionMaskAND'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: SelectionMask :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Boolean AND operation on a series of selection masks. ====Detailed Description==== Boolean AND operation on a series of selection masks. All the masks must be of the same size in order for this module to function properly. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:DoSelectionMaskNOT 0 1305 3444 2006-11-01T03:57:16Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DoSelectionMaskNOT'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: SelectionMask :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Inverts a selection. Nodes that were not selected get selection and nodes that were selected get deselected. ====Detailed Description==== Inverts a selection. Nodes that were not selected get selection and nodes that were selected get deselected. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:FindClosestNodeIndex 0 1319 3458 2006-11-01T03:58:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''FindClosestNodeIndex'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Find an index per point of the closest node in the field. ====Detailed Description==== Find an index per point of the closest node in the field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:FindClosestNodeIndexByValue 0 1320 3459 2006-11-01T03:58:20Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''FindClosestNodeIndexByValue'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Find an index per point of the closest node with given value in the field. ====Detailed Description==== Find an index per point of the closest node with given value in the field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:GenerateSphericalSurface 0 1321 3460 2006-11-01T03:58:23Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GenerateSphericalSurface'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ExampleFields :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates an example spherical surface. ====Detailed Description==== This module creates an example spherical surface. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:GetBoundingBox 0 1322 3461 2006-11-01T03:58:27Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetBoundingBox'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module gets the bounding box of a field. ====Detailed Description==== This module gets the bounding box of a field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:GetDomainBoundary 0 1323 3462 2006-11-01T03:58:30Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetDomainBoundary'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module will extract the inner and outer boundaries from a mesh. An inner boundary is defined as the boundary between different regions with a different value on the elements. The outer boundary is the boundary that surround the mesh. ====Detailed Description==== This module will extract the inner and outer boundaries from a mesh. An inner boundary is defined as the boundary between different regions with a different value on the elements. The outer boundary is the boundary that surround the mesh. In the GUI one can selectively set which boundaries are extracted from the mesh. One can set the range of values on the segmented field for which one wants to extract the boundary separating the different compartments. Within this range of selected domains one can select only the inner boundaries to this selected domain or one can get the boundary surrounding the selected domains. This module is intended to extract the boundaries in a segmented field. The module is templated and should work on any mesh type as long as the data is assigned to the elements. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:GetFieldBoundary 0 1324 3463 2006-11-01T03:58:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetFieldBoundary'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== A GetFieldBoundary version that works for all fields. ====Detailed Description==== A GetFieldBoundary version that works for all fields. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:GetFieldData 0 1325 3464 2006-11-01T03:58:36Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Get the data from the field and put it into a matrix. ====Detailed Description==== Get the data from the field and put it into a matrix. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:GetMatrixFromFieldProperties 0 1326 3465 2006-11-01T03:58:40Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetMatrixFromFieldProperties'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FieldProperty :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a matrix property from a field. ====Detailed Description==== This module retrieves a matrix property from a field. The name of the property can be entered in the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:GetStringFromFieldProperties 0 1327 3466 2006-11-01T03:58:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetStringFromFieldProperties'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FieldProperty :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a string property from a field. ====Detailed Description==== This module retrieves a string property from a field. The name of the property can be entered in the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:GetSubMatrix 0 1328 3467 2006-11-01T03:58:47Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetSubMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Math :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Get a submatrix from a matrix by selecting row and column indices. ====Detailed Description==== Get a submatrix from a matrix by selecting row and column indices. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertBundleBreakPoint 0 1334 3473 2006-11-01T03:59:14Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertBundleBreakPoint'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: BreakPoint :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== BreakPoint of Bundle flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ====Detailed Description==== BreakPoint of Bundle flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertFieldBreakPoint 0 1335 3474 2006-11-01T03:59:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertFieldBreakPoint'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: BreakPoint :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== BreakPoint of Field flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ====Detailed Description==== BreakPoint of Field flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertMatrixBreakPoint 0 1336 3475 2006-11-01T03:59:21Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertMatrixBreakPoint'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: BreakPoint :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== BreakPoint of Matrix flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ====Detailed Description==== BreakPoint of Matrix flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertMatrixIntoFieldProperties 0 1337 3476 2006-11-01T03:59:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertMatrixIntoFieldProperties'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FieldProperty :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'matrix' object as a field property. ====Detailed Description==== This module adds a 'matrix' object as a field property. The module allows three separate matrices to be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertStringBreakPoint 0 1338 3477 2006-11-01T03:59:29Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertStringBreakPoint'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: BreakPoint :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== BreakPoint of String flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ====Detailed Description==== BreakPoint of String flow. This module will buffer all input when it is blocked and will copy the input to the output when it is unblocked. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:InsertStringIntoFieldProperties 0 1339 3478 2006-11-01T03:59:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertStringIntoFieldProperties'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FieldProperty :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'string' object as a field property. ====Detailed Description==== This module adds a 'string' object as a field property. The module allows three separate strings to be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ManageParameterMatrix 0 1345 3484 2006-11-01T04:00:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ManageParameterMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Script :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module gets a matrix from a ParameterList. ====Detailed Description==== This module gets a matrix from a ParameterList. Use the GUI to select the parameter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ManageParameterString 0 1346 3485 2006-11-01T04:00:11Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ManageParameterString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Script :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module gets a String from a ParameterList. ====Detailed Description==== This module gets a String from a ParameterList. Use the GUI to select the parameter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:MapCurrentDensityOntoField 0 1347 3486 2006-11-01T04:00:16Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MapCurrentDensityOntoField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module maps potentials and conductivities into a current density field. The module samples the underlying fields and averages or integrates the data and puts the result on the elements of the output mesh. The module has the option to do the dot product with the current density field as well for surface destination meshes. ====Detailed Description==== This module maps potentials and conductivities into a current density field. The module samples the underlying fields and averages or integrates the data and puts the result on the elements of the output mesh. The module has the option to do the dot product with the current density field as well for surface destination meshes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:MapFieldDataFromElemToNode 0 1348 3487 2006-11-01T04:00:21Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MapFieldDataFromElemToNode'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Compute the value of the nodes based on the data from the adjoining elements. This module supports various operations to map element data to node data. ====Detailed Description==== Compute the value of the nodes based on the data from the adjoining elements. This module supports various operations to map element data to node data. Supported methods are: AVERAGE - Compute the average of adjoining elements MIN - Compute the minimum value of adjoining elements MAX - Compute the maximum value of adjoinint elements SUM - Compute the sum of the adjoining elements INTERPOLATE - Compute a weighted average of the adjoining elements ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:MapFieldDataFromNodeToElem 0 1349 3488 2006-11-01T04:00:26Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MapFieldDataFromNodeToElem'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Compute the value of the elements based on the data from the adjoining elements. This module supports various operations to map node data to element data. ====Detailed Description==== Compute the value of the elements based on the data from the adjoining elements. This module supports various operations to map node data to element data. Supported methods are: AVERAGE - Compute the average of adjoining nodes MIN - Compute the minimum value of adjoining nodes MAX - Compute the maximum value of adjoining nodes SUM - Compute the sum of the adjoining nodes INTERPOLATE - Compute a weighted average of the adjoining nodes ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:MapFieldDataGradientOntoField 0 1350 3489 2006-11-01T04:00:30Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MapFieldDataGradientOntoField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module maps the gradient on the destination field. ====Detailed Description==== This module maps the gradient on the destination field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:MapFieldDataOntoFieldNodes 0 1351 3490 2006-11-01T04:00:35Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MapFieldDataOntoFieldNodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module takes a source field and maps it onto a destiation field. The module projects the data onto the nodes of the destination mesh. ====Detailed Description==== This module takes a source field and maps it onto a destiation field. The module projects the data onto the nodes of the destination mesh. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:MergeFields 0 1360 3499 2006-11-01T04:01:19Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MergeFields'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== MergeFields glues any number of input fields into one output field. ====Detailed Description==== This module is intended to replace GatherFields and fix a number of problems associate with the old module. This module takes in an arbitrary number of input fields and gathers them all up into one output field. If the input fields all have the same editable mesh type then the output field will also be of the same type. If the meshes are not editable or of different mesh types then only their points will be gathered up and a single PointCloudField will be produced. The module has the option to merge nodes together when they are at the same physical location. Often due to numeric round off, they are at a slightly different position. Hence the module allows to set a tolerance which is used to determine whether two nodes are in fact the same. The tolerance is a simple measure in distance that is applied to see whether nodes are the same. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:MergeMeshNodes 0 1361 3500 2006-11-01T04:01:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MergeMeshNodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Merge nodes that are close together and remove double elements. ====Detailed Description==== Merge nodes that are close together and remove double elements. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:MergeMeshes 0 1362 3501 2006-11-01T04:01:26Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MergeMeshes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== MergeFields glues any number of input fields into one output field. ====Detailed Description==== This module is intended to replace GatherFields and fix a number of problems associate with the old module. This module takes in an arbitrary number of input fields and gathers them all up into one output field. If the input fields all have the same editable mesh type then the output field will also be of the same type. If the meshes are not editable or of different mesh types then only their points will be gathered up and a single PointCloudField will be produced. The module has the option to merge nodes together when they are at the same physical location. Often due to numeric round off, they are at a slightly different position. Hence the module allows to set a tolerance which is used to determine whether two nodes are in fact the same. The tolerance is a simple measure in distance that is applied to see whether nodes are the same. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ModalMapping 0 1364 3503 2006-11-01T04:01:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ModalMapping'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FieldsData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module takes a source field and maps it onto a destiation field. The module projects the data onto the elements of the destination mesh. ====Detailed Description==== This module takes a source field and maps it onto a destiation field. The module projects the data onto the elements of the destination mesh. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ParameterList 0 1367 3506 2006-11-01T04:01:44Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ParameterList'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Script :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module allows for creation a bundle with strings, scalars, vectors, and tensors as components. Each component has a name and can be extracte out of the bundle. ====Detailed Description==== This module allows for creation a bundle with strings, scalars, vectors, and tensors as components. Each component has a name and can be extracte out of the bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadBundle 0 1372 3511 2006-11-01T04:02:02Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a bundle from disk. ====Detailed Description==== This module reads a bundle from disk. A bundle file has a .bdl extension and can be written with the BundleWriter module. In a .bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it as one file. The module has an optional filename input port which overrides the filename in the GUI and it also outputs the selected filename. The latter is useful if one wants to annotate the results with the input filename. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadColorMap 0 1373 3512 2006-11-01T04:02:06Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadColorMap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ColorMap Read a persistent colormap from a file on disk. ====Detailed Description==== A ColorMap maps scalar values to color values. Upon opening, the ReadColorMap GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The current directory defaults to only show files with an .cmap extension which helps the user determine the difference between ColorMaps and other files. However, the ReadColorMap can read-in a file with any extension so long as the data has the correct format. If the user attempts to read-in a file that is other than a SCIRun supported ColorMap, or uses an incorrect file format, an error message appears in the Error frame within the SCIRun enrvironment. Clicking the OK button will load the file and dismiss the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadColorMap2D 0 1374 3513 2006-11-01T04:02:09Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadColorMap2D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ColorMap2 Read a persistent 2D colormap from a file on disk. ====Detailed Description==== The ColorMap2 Read a persistent 2D colormap from a file on disk. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadField 0 1375 3514 2006-11-01T04:02:12Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ====Detailed Description==== Upon opening, the ReadField GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The current directory defaults to only show files with an .fld extension which helps the user determine the difference between Fields and other files. However, the ReadField can read-in a file with any extension so long as the data has the correct format. If the user attempts to read-in a file that is other than a SCIRun supported Field, or uses an incorrect file format, an error message appears in the Error frame within the SCIRun enrvironment. Clicking the OK button will load the file and dismiss the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadMatrix 0 1376 3515 2006-11-01T04:02:16Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ====Detailed Description==== Upon opening, the The ReadMatrix GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The current directory defaults to only show files with an .mat extension which helps the user determine the difference between matrix files and other files. However, the ReadMatrix can read-in a file with any extension so long as the data has the correct format. If the user attempts to read-in a file that is other than a SCIRun supported Matrix, or uses an incorrect file format, an error message appears in the Error frame within the SCIRun enrvironment. Clicking the OK button will load the file and dismiss the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadPath 0 1377 3516 2006-11-01T04:02:21Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadPath'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ReadPath module reads a persistent camera path from a file. ====Detailed Description==== Upon opening, the The ReadPath GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The current directory defaults to only show files with an .path extension which helps the user determine the difference between Paths and other files. However, the ReadPath can read-in a file with any extension so long as the data has the correct format. If the user attempts to read-in a file that is other than a Path, or uses an incorrect file format, an error message appears in the Error frame within the SCIRun enrvironment. Clicking the OK button will load the file and dismiss the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReadString 0 1378 3517 2006-11-01T04:02:27Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a text file into a string. ====Detailed Description==== This module reads a text file from disk. The file needs to be an ascii text file and does not to be formatted in a special way like all other SCIRun file types. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReorderMatrixByCuthillMcKee 0 1379 3518 2006-11-01T04:02:30Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReorderMatrixByCuthillMcKee'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Math :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reorders the rows and columns of a square matrix according to the CutHill-McKee scheme in order to reduce the bandwidth of the matrix. ====Detailed Description==== This module reorders the rows and columns of a square matrix according to the CutHill-McKee scheme in order to reduce the bandwith of the matrix. The input for this module is a square matrix and it returns the reordered matrix. The second output is the reordering scheme. If one is solve A*x=b. Vector b needs to be multiplied with the mapping matrix and x needs to be multiplied with the inverse mapping matrix. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReorderMatrixByReverseCuthillMcKee 0 1380 3519 2006-11-01T04:02:34Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReorderMatrixByReverseCuthillMcKee'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Math :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reorders the rows and columns of a square matrix according to the reverse CutHill-McKee scheme in order to reduce the bandwidth of the matrix. ====Detailed Description==== This module reorders the rows and columns of a square matrix according to the reverse CutHill-McKee scheme in order to reduce the bandwith of the matrix. The input for this module is a square matrix and it returns the reordered matrix. The second output is the reordering scheme. If one is solve A*x=b. Vector b needs to be multiplied with the mapping matrix and x needs to be multiplied with the inverse mapping matrix. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReplicateDataArray 0 1381 3520 2006-11-01T04:02:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReplicateDataArray'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module takes a ScalarArray, VectorArray or TensorArray and replicates it n-fold. ====Detailed Description==== This module takes a ScalarArray, VectorArray or TensorArray and replicates it n-fold. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportDataArrayInfo 0 1382 3521 2006-11-01T04:02:41Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportDataArrayInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ReportInfo :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Get information on a matrix used as a ScalarArray, VectorArray, or TensorArray. ====Detailed Description==== Get information on a matrix used as a ScalarArray, VectorArray, or TensorArray. The module differs from MatrixInfo in the sense that it reports whether a matrix is a ScalarArray, VectorArray, or TensorArray. The module outputs as well the number of elements in the array. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportDataArrayMeasure 0 1383 3522 2006-11-01T04:02:45Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportDataArrayMeasure'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module calculates a measure of the array. ====Detailed Description==== This module calculates a measure of the array. The module currently supports the calculation of the sum, mean, variance, norm, maximum, minimum, std dev, and median. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportFieldDataMeasures 0 1384 3523 2006-11-01T04:02:49Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportFieldDataMeasures'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Calculate Sum, Average, Minimum, Maximum, etc of the field data. ====Detailed Description==== Calculate Sum, Average, Minimum, Maximum, etc of the field data. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportFieldInfo 0 1385 3524 2006-11-01T04:02:54Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportFieldInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ReportInfo :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ReportFieldInfo is used to view the attributes of fields. ====Detailed Description==== ReportFieldInfo is purely an informational Module. It performs no modification on input data. Upon execution it displays attributes about the input field in the UI. Field Attributes displayed: Name - The Field name. May be blank. Generation - The Field internal object id. Typename - The C++ typename of the input Field Type. Center - The X,Y,Z coordinates of the average center of the nodes in the Field. Size - The X,Y,Z coordinates of the grid-aligned bounding box that encloses the Field. Data min,max - Only valid for scalar type input fields. Prints the respective min and max scalar values of the data associated with the input field. # Nodes - The number of X,Y,Z points in the input field. # Elements - The number of highest dimension elements in the input field. Ex. For a PointCloudField this would equal the number of nodes. For a TetVolField this would equal the number of tetrahedral cells in the input field. Data at - The location of the data values associated with the input field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportMatrixColumnMeasure 0 1386 3525 2006-11-01T04:02:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportMatrixColumnMeasure'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Math :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Apply an operator on each column of the matrix. ====Detailed Description==== Apply an operator on each column of the matrix. This module implements the following operations: Sum, Mean, Variance, Median, Maximum, Minimum, and Norm. The output of the module is a vector with the results of these operators applied to each column of the matrix. The output is a matrix with one row and the same number of columns as the input. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportMatrixInfo 0 1387 3526 2006-11-01T04:03:04Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportMatrixInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ReportInfo :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ReportMatrixInfo is used to view the attributes of matrices. ====Detailed Description==== ReportMatrixInfo is purely an informational Module. It performs no modification on input data. Upon execution it displays attributes about the input matrix in the UI. Matrix Attributes displayed: Name - The Matrix name. May be blank. Generation - The Matrix internal object id. Typename - The C++ typename of the input Matrix Type. # Rows - The number of rows in the input matrix. # Columns - The number of columns in the input matrix. # Elements - The size of the matrix. This is Rows x Columns for non sparse matrices. For sparse matrices this is the number of nonzero elements in the array. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ReportMatrixRowMeasure 0 1388 3527 2006-11-01T04:03:10Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportMatrixRowMeasure'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Math :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Apply an operator on each row of the matrix. ====Detailed Description==== Apply an operator on each row of the matrix. This module implements the following operations: Sum, Mean, Variance, Median, Maximum, Minimum, and Norm. The output of the module is a vector with the results of these operators applied to each row of the matrix. The output is a matrix with one column and the same number of rows as the input. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ResizeMatrix 0 1389 3528 2006-11-01T04:03:14Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ResizeMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: Math :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module resizes a matrix. ====Detailed Description==== This module resizes a matrix. One can specify the new size of the matrix by connecting scalar values to the input or by setting the appropriate values in the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:ScaleFieldMeshAndData 0 1392 3531 2006-11-01T04:03:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ScaleFieldMeshAndData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeMesh :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Scale Data and Geometry to match units. ====Detailed Description==== Scale Data and Geometry to match units. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:SelectAndSetChangeFieldData 0 1393 3532 2006-11-01T04:03:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SelectAndSetChangeFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ====Detailed Description==== ====Overview==== ====Input elements==== ====Output elements==== ====See Also ==== MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:SelectAndSetFieldData 0 1394 3533 2006-11-01T04:03:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SelectAndSetFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ====Detailed Description==== ====Overview==== This module lets the user compute a new scalar, vector, or tensor array. A scalar array is a nx1 matrix, a vector array is a nx3 matrix, and a tensor array is a nx6 or nx9 matrix (A nx6 tensor is defined as xx, xy, xz, yy, yz, zz). These matrices are used to store scalar, vector or tensor data associated with a mesh or field. To compute new scalar, vector or tensor values one has to supply a user-defined function that computes the new values. This function can be either supplied through the GUI or it can be supplied as a string. The module loops through each array element and uses the user-defined function to compute a new value. The output in this case is a function of scalar, vector, or tensor arrays. The function is applied by taking the next element of each array and applying the function to these variables. When the array size of one of the input variables is 1, it is assumed to be a constant value and it is taken each time the module gets a value from that array. The final size of the array is determined by the size of the other input arrays, or by the separate size input port. The latter is supplied in case all inputs are of size one, in which case the module needs a way to determine the size of the output. ====Input elements==== There are several input elements available to compute a new scalar values. A short list is displayed below. INDEX: The index number, which is the row index. Indexing starts at 0. SIZE: The size of the of the new array. A,B,C, ...: Matrices representing either scalar, vector, or tensor arrays. A scalar array is a nx1 matrix with scalar values, a vector array is a nx3 matrix and a tensor array is either a nx6 or nx9 matrix. In case of 6 elements they are stored in the following order: xx,xy,xz,yy,yz, and zz. The number of elements in each array can be either one or the number of scalars in the array. In case only one element is given, it is assumed to be a constant that applies to all data elements. This module allows up to 26 different matrices to be used. ====Output elements==== The output is stored in the variable RESULT. ====See Also ==== MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:SelectByFieldData 0 1396 3535 2006-11-01T04:03:41Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SelectByFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FieldsData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ====Detailed Description==== ====Overview==== This module lets the user compute a new scalar, vector, or tensor array. A scalar array is a nx1 matrix, a vector array is a nx3 matrix, and a tensor array is a nx6 or nx9 matrix (A nx6 tensor is defined as xx, xy, xz, yy, yz, zz). These matrices are used to store scalar, vector or tensor data associated with a mesh or field. To compute new scalar, vector or tensor values one has to supply a user-defined function that computes the new values. This function can be either supplied through the GUI or it can be supplied as a string. The module loops through each array element and uses the user-defined function to compute a new value. The output in this case is a function of scalar, vector, or tensor arrays. The function is applied by taking the next element of each array and applying the function to these variables. When the array size of one of the input variables is 1, it is assumed to be a constant value and it is taken each time the module gets a value from that array. The final size of the array is determined by the size of the other input arrays, or by the separate size input port. The latter is supplied in case all inputs are of size one, in which case the module needs a way to determine the size of the output. ====Input elements==== There are several input elements available to compute a new scalar values. A short list is displayed below. INDEX: The index number, which is the row index. Indexing starts at 0. SIZE: The size of the of the new array. A,B,C, ...: Matrices representing either scalar, vector, or tensor arrays. A scalar array is a nx1 matrix with scalar values, a vector array is a nx3 matrix and a tensor array is either a nx6 or nx9 matrix. In case of 6 elements they are stored in the following order: xx,xy,xz,yy,yz, and zz. The number of elements in each array can be either one or the number of scalars in the array. In case only one element is given, it is assumed to be a constant that applies to all data elements. This module allows up to 26 different matrices to be used. ====Output elements==== The output is stored in the variable RESULT. ====See Also ==== MODULE REFERENCE MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:SelectByFieldsData 0 1397 3536 2006-11-01T04:03:46Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SelectByFieldsData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: FieldsData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes a new scalar, vector or tensor array based upon a combination of scalars, vectors, and tensors. ====Detailed Description==== ====Overview==== This module lets the user compute a new scalar, vector, or tensor array. A scalar array is a nx1 matrix, a vector array is a nx3 matrix, and a tensor array is a nx6 or nx9 matrix (A nx6 tensor is defined as xx, xy, xz, yy, yz, zz). These matrices are used to store scalar, vector or tensor data associated with a mesh or field. To compute new scalar, vector or tensor values one has to supply a user-defined function that computes the new values. This function can be either supplied through the GUI or it can be supplied as a string. The module loops through each array element and uses the user-defined function to compute a new value. The output in this case is a function of scalar, vector, or tensor arrays. The function is applied by taking the next element of each array and applying the function to these variables. When the array size of one of the input variables is 1, it is assumed to be a constant value and it is taken each time the module gets a value from that array. The final size of the array is determined by the size of the other input arrays, or by the separate size input port. The latter is supplied in case all inputs are of size one, in which case the module needs a way to determine the size of the output. ====Input elements==== There are several input elements available to compute a new scalar values. A short list is displayed below. INDEX: The index number, which is the row index. Indexing starts at 0. SIZE: The size of the of the new array. A,B,C, ...: Matrices representing either scalar, vector, or tensor arrays. A scalar array is a nx1 matrix with scalar values, a vector array is a nx3 matrix and a tensor array is either a nx6 or nx9 matrix. In case of 6 elements they are stored in the following order: xx,xy,xz,yy,yz, and zz. The number of elements in each array can be either one or the number of scalars in the array. In case only one element is given, it is assumed to be a constant that applies to all data elements. This module allows up to 26 different matrices to be used. ====Output elements==== The output is stored in the variable RESULT. ====See Also ==== MODULE REFERENCE MODULE REFERENCE MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:SetFieldData 0 1404 3543 2006-11-01T04:04:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SetFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Extract data from the matrix and insert it into the field. ====Detailed Description==== Extract data from the matrix and insert it into the field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:SplitAndMergeFieldByDomain 0 1407 3546 2006-11-01T04:04:31Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SplitAndMergeFieldByDomain'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module uses the data at the elements to split the mesh into segements that all have the same element data. ====Detailed Description==== This module uses the data at the elements to split the mesh into segements that all have the same element data. Where two elements with different values at the elements intersect the nodes are split into two nodes and the elements are unlinked. The result of this module is a field in which all the elements are only linked to elements with the same value. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:SplitFieldByConnectedRegion 0 1408 3547 2006-11-01T04:04:36Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SplitFieldByConnectedRegion'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: CreateField :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module splits a field into a series of fields in which every field contains a segment of the field that was not topologically connected to the other parts of the field. ====Detailed Description==== This module splits a field into a series of fields in which every field contains a segment of the field that was not topologically connected to the other parts of the field. Thos module can for example be used to split a surface separating different domains in a set of surfaces that are not topologically connected. The out of this module is a bundle with the set of fields. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:SplitVectorArrayInXYZ 0 1410 3549 2006-11-01T04:04:45Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SplitVectorArrayInXYZ'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataArrayMath :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Decomposed the vector in the three cartesian coordinates. ====Detailed Description==== Decomposed the vector in the three cartesian coordinates. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:StreamMatrixFromDisk 0 1412 3551 2006-11-01T04:04:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''StreamMatrixFromDisk'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataStreaming :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Stream Data from a file on disk without loading the data into memory. ====Detailed Description==== Stream Data from a file on disk without loading the data into memory. This module extracts a one or more vectors from a matrix stored on disk. There are three methods of determining which columns or rows need to be extracted: (1) One can use the movie buttons in the GUI to set a start and end index and as well the current index. One can automatically step through the different vectors using the buttons in the GUI. The GUI also allows for setting the timing of reloading a new vector. This way one can select only one vector at a time. (2) One can supply a matrix with the indices of the vectors to extract. This can be one index or can be multiple. The matrix with the indices need to be connected to the 'Indices' input port. The order of the indices is kept when assigning them in the output matrix. (3) One can supply weights that can are used to extract columns or rows and then sum them together using the assigned weights. When using the weights, one does not need to supply indices. The indices of the rows or columns to be retrieved from disk are the columns in the weights matrix with a weight assigned. To obtain multple weighted outputs, one can assign a weights matrix with multiple rows. Internally in the module, the weights matrix will be translated into a sparse matrix. For optimal performance one should input a sparse matrix. This option is intended for mapping matrices, where one slices a small piece of a large mesh and wants to extract the signals assigned to that part of the mesh. The module outputs the vector or matrix with the selected columns or rows. The module also outputs the selected indices. This port can be used to slave other StreamMatrixFromDisk modules to read the same indexed data from different data files. The module also output the scaled index, which is the index multiplied with the spacing information stored in the data file. This port can be used to extract the time from the file automatically. The file with the streaming data needs to be in the uncompressed NRRD format. This format uses a text file to describe a data set distributed over multiple files. See teem.sourceforge.net for a description of the NRRD file format. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteBundle 0 1418 3557 2006-11-01T04:05:23Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module writes a bundle to disk. ====Detailed Description==== This module writes a bundle to disk. A bundle file has a .bdl extension and can be written with the WriteBundle module and can be read with the BundleReader module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it as one file. This module has an optional filename input port which allows to override the name assigned in the GUI. This port is intended to assist with scripting and can be used to automatically assign filenames. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteColorMap 0 1419 3558 2006-11-01T04:05:27Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteColorMap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Save persistent representation of a colormap to a file. ====Detailed Description==== Upon opening, the WriteColorMap GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The user can enter the name of a file that the matrix saves to. The file should have a .cmap extension. The default file name is MyColorMap. The user may choose to save the file in either Binary or ASCII file format. This module has an optional filename input port which allows to override the name assigned in the GUI. This port is intended to assist with scripting and can be used to automatically assign filenames. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteColorMap2D 0 1420 3559 2006-11-01T04:05:31Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteColorMap2D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Save persistent representation of a colormap to a file. ====Detailed Description==== Save persistent representation of a colormap to a file. This module has an optional filename input port which allows to override the name assigned in the GUI. This port is intended to assist with scripting and can be used to automatically assign filenames. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteField 0 1421 3560 2006-11-01T04:05:35Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Saves persistent field objects received from upstream modules. ====Detailed Description==== Upon opening, the WriteField GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The user can enter the name of a file that the matrix saves to. The file should have a .fld extension. The default file name is MyField. The user may also choose between a Binary or ASCII file format. This module has an optional filename input port which allows to override the name assigned in the GUI. This port is intended to assist with scripting and can be used to automatically assign filenames. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteMatrix 0 1422 3561 2006-11-01T04:05:40Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The WriteMatrix modules saves a persistent representation of a matrix to disk. ====Detailed Description==== Upon opening, the WriteMatrix GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The user can enter the name of a file that the matrix saves to. The file should have a .mat extension. The default file name is MyMatrix. The user may also choose between a Binary or ASCII file format. The Split check box option splits the reader file and matrix data into two files. This module has an optional filename input port which allows to override the name assigned in the GUI. This port is intended to assist with scripting and can be used to automatically assign filenames. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:WritePath 0 1423 3562 2006-11-01T04:05:44Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WritePath'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The WritePath module saves persistent representation of a path to a file. ====Detailed Description==== Upon opening, the WritePath GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The user can enter the name of a file that the path saves to. The file should have a .path extension. The default file name is MyCameraPath. The user may also choose between a Binary or ASCII file format. This module has an optional filename input port which allows to override the name assigned in the GUI. This port is intended to assist with scripting and can be used to automatically assign filenames. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:ModelCreation:WriteString 0 1424 3563 2006-11-01T04:05:48Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module writes a text file with the contents of the string. ====Detailed Description==== This module writes a text file with the contents of the string. The output file will be a plain ASCII file. This module has an optional filename input port which allows to override the name assigned in the GUI. This port is intended to assist with scripting and can be used to automatically assign filenames. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:ModelCreation|ModelCreation]] CIBC:Documentation:SCIRun:Reference:SCIRun:CollectMatrices 0 1425 1748 2006-11-01T04:10:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''AppendMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Composite a matrix from components. ====Detailed Description==== This module builds up a composited matrix from an optional base matrix and submatrices that get appended to the end (or prepended to the beginning). Using this module, in conjunction with an upstream MODULE REFERENCE module, users can build up time-dependent solution matrices. The UI has options to allow the user to select: - whether the matrices are concatenated (or replaced); - whether ColumnMatrices are added as rows or columns; - whether the submatrix should be concatenated to the beginning or the end of the base-matrix; - and a button to clear the current concatenated contents. Note: this module always produces a DenseMatrix as output. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix 0 1112 1977 1544 2006-11-01T04:10:54Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ApplyMappingMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Apply a mapping matrix to project the data from one field onto the mesh of another field. ====Detailed Description==== This module maps the "Source" field onto the geometry of the "Destination" field using the "Mapping" matrix to do the projection. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix 0 1426 3565 2006-11-01T04:10:57Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildMappingMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): Peter-Pike Sloan, David Weinstein, Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ====Detailed Description==== This module builds a mapping matrix which contains information about how to interpolate the data from the source field onto the geometry of the destination field. The resulting mapping matrix can then be used by the MODULE REFERENCE module to map the values from a field similar to the source field onto the destination field. The source field for BuildMappingMatrix and MODULE REFERENCE must contain the same geometry and data locations. However they do not have to contain the same data values or value types. For instance, a TetVolField of doubles with data at the nodes can be passed into the Source port of BuildMappingMatrix, and a TetVolField of Vectors with data also at the nodes and with the same mesh can be passed into the source port of MODULE REFERENCE. MODULE REFERENCE should be used instead of BuildMappingMatrix and MODULE REFERENCE if the mapping is not to be reused, as it does the same interpolation without building the intermediate mapping matrix. This should be used if the source field changes much more often than the destination field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals 0 1427 3566 2006-11-01T04:11:01Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildMatrixOfSurfaceNormals'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ====Detailed Description==== For each node in the input surface mesh, find the attached faces, and average the face normal weighted by area for that node. Output a nx3 DenseMatrix where n is the number of nodes in the input surface mesh. This matrix can be passed to ManageFieldData to map this data back to a Vector Field with the same mesh. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix 0 1428 3567 2006-11-01T04:11:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildNoiseColumnMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Performs the unary matrix operation transpose. ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix 0 1429 3568 2006-11-01T04:11:09Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildPointCloudToLatVolMappingMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Builds mapping matrix that projects data from a PointCloud to a LatVol ====Detailed Description==== Builds mapping matrix that projects data from a PointCloud to a LatVol ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled 0 1113 1808 1545 2006-11-01T04:11:12Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform a specified functional transform on all of the data in a field. ====Detailed Description==== Compute the specified function on each data element in the input field. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are x, y, z, and v, where x, y, and z are the positions of the data point and v is the value of the input field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = x + v;" would return a new field containing the x position of each element added with the value that was already there. "result = v.x();" could be used to extract the x component of a vector field into a scalar field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled2 0 1114 1810 1546 2006-11-01T04:11:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateFieldData2'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform a specified functional transform to each pair of data elements in the two input fields. ====Detailed Description==== Compute the specified function for each pair of corresponding data elements in the input fields. In order to correspond the data points, this module requires that the two input fields share the same mesh and have their data at the same location. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are the x, y, and z positions of the data point, v0 for the first field's data element and v1 for the second field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = v0 + v1;" would add each of the corresponding elements of the two fields. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled3 0 1115 1811 1547 2006-11-01T04:11:19Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateFieldData3'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform a specified functional transform on all of the data in a field. ====Detailed Description==== Compute the specified function for each tripple of corresponding data elements in the input fields. In order to correspond the data points, this module requires that the three input fields share the same mesh and have their data at the same location. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are the x, y, and z positions of the data point, v0 for the first field's data element, v1 for the second field's data element, and v2 for the third field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = v0 + v1 + v3;" would add each of the corresponding elements of the two fields. "result = Vector(v0, v1, v2);" would concatenate the values of three scalar fields into a vector field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients 0 1116 3255 1548 2006-11-01T04:11:23Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateGradients'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Compute the derivative of a scalar field and output it as a vector field. ====Detailed Description==== The CalculateGradients module computes the derivative of a scalar field and converts it to a vector field. The gradient is the derivative of three dimensions; the first component in the X direction, the second component in the Y direction, and the third component in the Z direction grid, computing the general direction of "flow" at a specific point on the geometry. Not all field types are supported by the CalculateGradients module. At this time only derivatives of TetVolMesh and LatVolMesh are supported. The CalculateGradients module has no GUI. If CalculateGradients recieves as input a Field type it does not support, an error message appears in the Error frame of the SCIRun environment. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes 0 1117 3256 1549 2006-11-01T04:11:26Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateLatVolGradientsAtNodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Compute the derivative of a scalar lattice and output it as a vector lattice. ====Detailed Description==== The CalculateLatVolGradientsAtNodes module computes the derivative of a scalar field and converts it to a vector field. The gradient is the derivative of three dimensions; the first component in the X direction, the second component in the Y direction, and the third component in the Z direction grid, computing the general direction of "flow" at a specific point on the geometry. CalculateLatVolGradientsAtNodes only supports computation of the gradient on node centered LatVolFields of scalar type. The CalculateLatVolGradientsAtNodes module has no GUI. If CalculateLatVolGradientsAtNodes recieves as input a Field type it does not support, an error message appears in the Error frame of the SCIRun environment. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals 0 1118 3257 1550 2006-11-01T04:11:30Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateNodeNormals'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Make a new vector field that points to the input point. ====Detailed Description==== This creates a new vector field containing the same geometry and data location as the input field. It works in two modes. If the input PointCloudField contains only one point, all of the vectors in the output field will be attracted to that input point. If the input PointCloudField contains two or more points, the first two points will be used as a line and all the vectors in the output field will be attracted to that line. If the input field contains scalar values, the vectors in the output field will be scaled by those values. Otherwise they will all be normalized. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes 0 1119 3258 1551 2006-11-01T04:11:34Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CalculateVectorMagnitudes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Computes the gradient of a field. ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap 0 1430 3569 2006-11-01T04:11:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ChooseColorMap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ====Detailed Description==== ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) If the Use first valid colormap option is checked, the module will disregard the port index and iterate over the input ports, passing the first valid data downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField 0 1431 3570 2006-11-01T04:11:42Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ChooseField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ====Detailed Description==== ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. If the Use first valid field option is checked, the module will disregard the port index and iterate over the input ports, passing the first valid data downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix 0 1432 3571 2006-11-01T04:11:45Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ChooseMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ====Detailed Description==== ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. If the Use first valid matrix option is checked, the module will disregard the port index and iterate over the input ports, passing the first valid data downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction 0 1433 3572 2006-11-01T04:11:48Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipFieldByFunction'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Select a subset of a field. ====Detailed Description==== The ClipFieldByFunction module clips out a subset of a field. It does so by preserving all of the elements in the input field for which the user specified C++ expression evaluates to true at the specified test location. As a side effect of this algorithm any degenerate non-element items in the input field are discarded by the clip. The type of the field is preserved in the clip, as well as the data values if possible. Some field types are structured and thus not clippable. This includes the LatVolField, ImageField, and Scanline field types. There is an MODULE REFERENCE module that can be used to convert these fields to appropriately unstructured versions before clipping. The user function should be a valid C++ expression. It will be dynamically compiled into a function of the form "bool inside_p(double x, double y, double z, TYPE v) { return EXPR; }" where TYPE is the data type contained in the field, and EXPR is the function typed into the GUI. The geometric location of the test is be specified in addition to the function. The test can be valid if it works at element centers, at one node, or at all of the nodes in each mesh element. If the data location of the clip is different that the location of the data in the field, 'v' will always be 0 for that test (because there is no data there). For example, "x gt 0" would clip the field to only those elements with positions greater than 0. "y lt 3 || z gt 2.5" would preserve just the elements with y position less than 3 or z position greater than 2.5. "v == 4" would preserve all of the elements that contained a data value of 4. *Note that current simple HTML parser cannot handle greater than or less than symbols, abbreviated them to 'gt' and 'lt'. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget 0 1434 3573 2006-11-01T04:11:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipFieldToFieldOrWidget'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Select a subset of a field. ====Detailed Description==== The ClipFieldToFieldOrWidget module clips out a subset of a field. It does so by preserving all of the elements in the input field that match the clipping criteria. By default this is every element who's center is within the clipping widget or clipping field. As a side effect of this algorithm any degenerate non-element items in the input field are discarded by the clip. The module runs in one of two different modes. If a field is connected to the "Clip Field" port, the module will clip the input field such that only those elements inside of the clip field are preserved. If no Clip Field is connected then the GUI widget is used to select which portion of the input field to preserve. The type of the field is preserved in the clip, as well as the data values if possible. Some field types are structured and thus not clippable. This includes the LatVolField, ImageField, and Scanline field types. There is an MODULE REFERENCE module that can be used to convert these fields to appropriately unstructured versions before clipping. Functional clipping has been deprecated from this module. Use the new and much faster MODULE REFERENCE module if that is needed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget 0 1435 3574 2006-11-01T04:11:55Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipLatVolByIndicesOrWidget'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Select data from a field. ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices 0 1436 3575 2006-11-01T04:11:58Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipRasterFieldByIndices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): ARSanderson :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ====Detailed Description==== The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. The Field Sub Sample input port is a field that is structured in 3D. This field will be sub sampled in 3D and piped to the output port. The user can sub-sample the grid in all directions via the GUI. The sub-sampling can be performed either of two ways, a sub region can be selected or values can be skipped. A combination of both is also possible. The "Start Node" defines the first sampling. Because the data is circular in the Theta and Phi directions the ending node is defined as the "Start Node" plus the "Number of Nodes". This allows for overlap in the data. In the case of the Radial direction the number of nodes is limited based on the size of the data. The "Skip Nodes" defines how often the data will be sample between start and end nodes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue 0 1437 3576 2006-11-01T04:12:02Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipVolumeByIsovalue'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Clip a scalar field to a specified isovalue. ====Detailed Description==== The ClipVolumeByIsovalue module is used to clip a TetVol or TriSurf field along a particular isovalue. The isovalue is specified by the entry in the GUI. The new field can contain either the values less than or greater than the isovalue, as selected by the user. In order to compute where the cuts are to be made, the input field must contain scalar values at the nodes. If the input field contains element centered data then either just use MODULE REFERENCE to determine which elements to keep or interpolate the elements onto a node-centered field. Only TetVol and TriSurf fields are supported by this general clipping. Other fields should be converted into these types if they are to be clipped. See MODULE REFERENCE, MODULE REFERENCE, and MODULE REFERENCE for an idea of how to do this conversion. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement 0 1438 3577 2006-11-01T04:12:06Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClipVolumeByIsovalueWithRefinement'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Clip a scalar field to a specified isovalue. ====Detailed Description==== The ClipVolumeByIsovalueWithRefinement module is used to clip a TetVol or TriSurf field along a particular isovalue. The isovalue is specified by the entry in the GUI. The new field can contain either the values less than or greater than the isovalue, as selected by the user. In order to compute where the cuts are to be made, the input field must contain scalar values at the nodes. If the input field contains element centered data then either just use MODULE REFERENCE to determine which elements to keep or interpolate the elements onto a node-centered field. Only TetVol and TriSurf fields are supported by this general clipping. Other fields should be converted into these types if they are to be clipped. See MODULE REFERENCE, MODULE REFERENCE, and MODULE REFERENCE for an idea of how to do this conversion. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis 0 1120 3259 1552 2006-11-01T04:12:09Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertFieldBasis'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ConvertFieldBasis can modify the location of data in the input field. ====Detailed Description==== Upon execution the UI will display the input field name and the current location the data values for the that field are located. The output field's new data value location is selected from a list of available basis types. The output field will contain the same geometry as the input field with the data value storage at the newly specified location. All output data values are reset to 0. There is currently support for three basis functions within SCIRun. The first is None, meaning that there is no data associated with the field and that no interpolation is supported. The Constant basis is when data is associated with the elements of a field. This data is not interpolated but is constant within each element and non-continuous at element boundaries. The third basis function is Linear. Linear means that the data is associated with the nodes of a field. Any interpolation will be done linearly within elements (but not across element boundaries). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType 0 1121 3260 1553 2006-11-01T04:12:13Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertFieldDataType'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ConvertFieldDataType is used to change the type of data associated with the field elements. ====Detailed Description==== ConvertFieldDataType allows the user to change the datatype at each field data_at location. This module also attempts to convert the data in the field to the new type, if possible. If no conversion is possible, the output field will contain default zero values. Note that conversion from a large datatype to a smaller datatype usually results in a loss of precision. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture 0 1439 3578 2006-11-01T04:12:16Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertFieldsToTexture'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Kurt Zimmerman, Milan Ikits, Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module builds a 3D Texture for use with an OpenGL volume renderer. ====Detailed Description==== The ConvertFieldsToTexture module is used to create 3D volume textures for use by the MODULE REFERENCE and MODULE REFERENCE modules. The two inputs are a scalar LatVolField and an optional vector LatVolField that are packed into an appropriate texture. Both fields must have the same dimensionality. The Gradient Field input port is used for lighting and ColorMap2 filtering and is only required if those two features are to be used. It can be computed from the scalar field using the MODULE REFERENCE module if needed. See also the MODULE REFERENCE module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode 0 1122 3261 1554 2006-11-01T04:12:23Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertLatVolDataFromElemToNode'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Make a new field with data at nodes instead of elements. ====Detailed Description==== ConvertLatVolDataFromElemToNode creates a new field with the data at the mesh nodes rather than at the elements. This currently only works on LatVolField, StructHexVolField, ImageField, and StuctQuadSurfField field types. The data must be at cells/faces as appropriate to the field type. A new field is created such that the data remains at the same positions in space but occupy the nodes of the new mesh rather than being located at the cell/face locations. This is the opposite of MODULE REFERENCE. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem 0 1123 3262 1555 2006-11-01T04:12:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertLatVolDataFromNodeToElem'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Make a new field with data at elements instead of nodes. ====Detailed Description==== ConvertLatVolDataFromNodeToElem creates a new field with the data at the mesh elements rather than at the nodes. This currently only works on LatVolField and ImageField field types. The data must be at the nodes. A new field is created such that the data remains at the same positions in space but occupy the cell/face centers of the new mesh rather than being located at the node locations. This is the opposite of MODULE REFERENCE. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector 0 1440 3579 2006-11-01T04:12:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMappingMatrixToMaskVector'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Converts a Mapping Matrix to a Mask Vector ====Detailed Description==== Converts a Mapping Matrix to a Mask Vector ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix 0 1441 3580 2006-11-01T04:12:37Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMaskVectorToMappingMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Converts a Mask Vector to a Mapping Matrix. ====Detailed Description==== Converts a Mask Vector to a Mapping Matrix. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh 0 1442 3581 2006-11-01T04:12:40Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMatricesToMesh'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Construct a mesh from raw matrix data. ====Detailed Description==== ConvertMatricesToMesh takes in raw position and connnectivity data as matrices and uses them to construct a new mesh. The 'Mesh Positions' data should be an Nx3 matrix where N is the number of points in the mesh and each row contains data in XYZ order. The connectivity data should be an MxP matrix where M is the number of elements in the mesh and P is the number of node references per element. Thus for a TetVolMesh P would be 4. The node references are row indices into the 'Mesh Positions' matrix and are indexed starting at zero. The output field will contain the new mesh and no data. It is recommended that the MODULE REFERENCE module be used to attach data to the new field. See also MODULE REFERENCE, which can be used to attach new positional data to existing meshes but cannot construct a new mesh nor change it's connectivity information. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType 0 1443 3582 2006-11-01T04:12:50Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMatrixType'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Casts a matrix ====Detailed Description==== Displays type if the input matrix. Allows you to let the matrix stay the same and just pass through, or cast it to a ColumnMatrix, DenseMatrix or SparseRowMatrix. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture 0 1444 3583 2006-11-01T04:13:13Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertNrrdsToTexture'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Kurt Zimmerman :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module builds a 3D Texture for use with an OpenGL volume renderer. ====Detailed Description==== The ConvertNrrdsToTexture module is used to create 3D volume textures for use by the MODULE REFERENCE and MODULE REFERENCE modules. The incoming data is bricked up into textures based upon how much video memory is available. There are two input ports to this module. The first one can contain a Nrrd in one of two formats. Either it should contain a 3 dimensional nrrd of scalar values or it should contain a 4 dimensional nrrd where the fastest axis is a quadruple of the scalar values and the normal(gradient) associated with the data at that point. The second port is optional and should contain the gradient magnitude of the gradients in the first port. It is only required if normals are present in first nrrd and the data is to be viewed using ColorMap2 transfer functions. Both input nrrds must already be of type UNSIGNED CHARACTER and can be converted to that type using the MODULE REFERENCE module. See also the MODULE REFERENCE module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds 0 1445 3584 2006-11-01T04:13:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CoregisterPointClouds'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== CoregisterPointClouds the first three points of two PointCloudFields. ====Detailed Description==== CoregisterPointClouds the first three points of two PointCloudFields. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath 0 1446 3585 2006-11-01T04:13:32Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateAndEditCameraPath'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Render :Author(s): Alexei Samsonov :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ====Detailed Description==== CreateAndEditCameraPath module provides a set of interactive tools for creation and manipulation of camera path in Viewer. The basic features of the modules are as follows: - Interactive adding/inserting/deleting of key frames of current camera position in edited path - Navigation through existing key frames - Three interpolation modes - Linear, Cubic and no interpolation (key frames only playback) - Two acceleration modes - smooth start/end(in interpolated mode) and no acceleration - Path step(smoothness) and sampling rate specification for current path - Automatic generation of circle path based on current camera position and position of reference widget - Looped and reversed path modes ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap 0 1447 3586 2006-11-01T04:13:35Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateAndEditColorMap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Unknown :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Modify and create custom SCIRun ColorMaps. ====Detailed Description==== A simple interactive editor for SCIRun ColorMaps. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D 0 1448 3587 2006-11-01T04:13:39Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateAndEditColorMap2D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Milan Ikits, Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ====Detailed Description==== CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. These are two dimensional colormaps where the horizontal axis represents the scalar values of the data and the vertical axis represents the gradient magnitude. For example a narrow vertical bar that cuts across the colormap selects all the elements in the data with that value and results in an approximate isosurface (it's not quite a surface as it has volume depending upon the narrowness of the band). A vertical bar would represent a particular rate of change within the volume and could be used to highlight boundaries between objects or areas of high flow. The ColorMap2 is painted by dragging various widgets around to cover the points of interest in the data. In addition an optional ColorMap2 can be generated elsewhere (See MODULE REFERENCE and MODULE REFERENCE and passed into the appropriate input port. The second Histogram port is also optional and should contain a join histogram of the scalar values and gradient magnitudes. It should be a 512x256 grayscale image (and must contain unsigned character data) that is displayed in the background of the ColorMap2 for reference purposes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform 0 1449 3588 2006-11-01T04:13:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateGeometricTransform'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Build a 4x4 geometric transformation matrix. ====Detailed Description==== Build the transformation matrix by specifying options in respect to Translate, Scale, Rotate, Sheer and Permute. If the second input (SCIRun::Field) is input, its bounding box is used to init the transform ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage 0 1450 3589 2006-11-01T04:13:46Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateImage'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Make an ImageField that fits the source field. ====Detailed Description==== Make an ImageField that fits the source field. The value type of the ImageField is similar to that of the input field. If there is no input field specified, then create a unit area of doubles. The size parameters refer to the number of nodes in the volume, not the number of faces. Thus a 2x2x2 node image will only contain one facet. The Pad Percentage parameter is an optional parameter that describes how much larger than the input field the resulting image area should be. For example, a value of 100 would make the image field be three times as far across and contain nine times the area of an image with the default 0 padding. A value of 50 would cause the image to be twice as far across (50% bigger on each side). No interpolation is done onto the new field. It is recommended that the MODULE REFERENCE module be used if those values are needed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol 0 1451 3590 2006-11-01T04:13:49Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateLatVol'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Make a LatVolField that fits the source field. ====Detailed Description==== Make a LatVolField that fits the source field. The value type of the LatVolField is the same as that of the input field. If there is no input field specified, then create a unit volume of doubles. The size parameters refer to the number of nodes in the volume, not the number of cells. Thus a 2x2x2 node lattice will only contain one cell. The Pad Percentage parameter is an optional parameter that describes how much larger than the input field the resulting lattice volume should be. For example, a value of 100 would make the lattice volume be three times as far across and contain twenty seven times the volume of a lattice with the default 0 padding. A value of 50 would cause the lattice to be twice as far across (50% bigger on each side). No interpolation is done onto the new field. It is recommended that the MODULE REFERENCE module be used if those values are needed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer 0 1452 3591 2006-11-01T04:13:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateLightForViewer'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): ? :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ? ====Detailed Description==== ? ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix 0 1453 3592 2006-11-01T04:13:56Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module lets the user create a small dense matrix manually. ====Detailed Description==== This module lets the user create a small dense matrix manually. In the gui one can type the contents of an arbitrarily sized matrix. First set the dimensions of the matrix and then type its contents. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps 0 1454 3593 2006-11-01T04:13:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateStandardColorMaps'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Kurt Zimmerman :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== A module that generates fixed Colormaps for visualization tools. ====Detailed Description==== This module is used to create some "standard" non-editable colormaps in Dataflow/Uintah. Non-editable simply means that the colors cannot be interactively manipulated. The Module does, allow for the the resolution of the colormaps to be changed. This class sets up the data structures for Colormaps and creates a module from which the user can choose from several popular colormaps. By clicking in the Color band the user manipulate the transparency of the color. This is useful, for example, when volume rendering, though many visualization tools ignore the transparency data. Most of the important work for this module is performed in the CreateStandardColorMaps.tcl file. There you can easily add new colormaps by making the obvious changes to the buildColorMaps function and the ui function (where the make_labeled_radio buttons are created). The C++ code merely queries the tcl code and fills the Colormap. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString 0 1455 1689 2006-11-01T04:14:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module can be used to create a string. ====Detailed Description==== This module allows the user to create a string by typing its contents into an edit box in the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex 0 1456 3595 2006-11-01T04:14:08Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateStructHex'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Make a StructHexVolField that fits the source field. ====Detailed Description==== Make a StructHexVolField that fits the source field. The value type of the LatVolField is the same as that of the input field. If there is no input field specified, then create a unit volume of doubles. The size parameters refer to the number of nodes in the volume, not the number of cells. Thus a 2x2x2 node lattice will only contain one cell. The Pad Percentage parameter is an optional parameter that describes how much larger than the input field the resulting lattice volume should be. For example, a value of 100 would make the lattice volume be three times as far across and contain twenty seven times the volume of a lattice with the default 0 padding. A value of 50 would cause the lattice to be twice as far across (50% bigger on each side). No interpolation is done onto the new field. It is recommended that the MODULE REFERENCE module be used if those values are needed. The default appearance of this field is not much different than that produced by the MODULE REFERENCE. However the points can be moved independently of each other such that primitive modeling can be done in conjunction with the MODULE REFERENCE module. See the CreateStructHex.net sample network for an example. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes 0 1457 3596 2006-11-01T04:14:12Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateViewerAxes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Generates Axes Geometry for rendering graphs. ====Detailed Description==== Generates Axes Geometry for rendering graphs. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption 0 1458 3597 2006-11-01T04:14:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateViewerCaption'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Allen R. Sanderson :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Generates a title for rendering animations. ====Detailed Description==== This module adds a title to the view. It is most useful when rendering animations. It has a single input which is matrix containing one value. The output is geometry. The title style sets the border and color. If a value is displayed the format can be set using a C style format. The title size sets size. The title location set the location to be in one of the viewer corners. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon 0 1459 3598 2006-11-01T04:14:21Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateViewerClockIcon'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Allen R. Sanderson :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Generates a clock for rendering animations. ====Detailed Description==== This module adds a clock to the view. It is most useful when rendering animations. It has a single input which is matrix containing one value, the time. The output is geometry. The clock type may be either a digital or analog. When creating an analog clock it is possible to also display the time digitally. The clock style sets the border and color. If the time is displayed digitally the format can be set using a C style format. The clock range sets beginning and end time for an analog clock. The clock size sets size. The clock location set the location to be in one of the viewer corners. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary 0 1460 3599 2006-11-01T04:14:27Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''EvaluateLinAlgBinary'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Performs one of a number of selectable matrix operations using the two input matrices. ====Detailed Description==== One of a number of binary matrix operations can be selected from the GUI and is then applied to the two input matrices to produce a new matrix that is then sent to the output port. The operations are X, +, Normalize, Select Rows, Select Columns, or Function. "A X B" does a matrix multiply of the two matrices. The number of rows in the first matrix must match the number of columns in the second matrix. The output matrix has the same number of columns as the first matrix and the same number of rows as the second. "A + B" performs a matrix addition. The two input matrices must be the same size. The elements are added in a piecewise fashion. This is equivalent to selecting "Function" and using 'x+y' as the function description "Normalize A to B" computes the min and max values of the second matrix, and then linearly transforms all of the elements in the first matrix so that they fall within the range of those min and max values. "Select Rows" uses the values in the B input matrix as row indices to extract from the A input matrix. The B input matrix must be a Column Matrix containing valid row index values into the A matrix. For example, if the B matrix contains [3 5] and the A matrix is 100x200, then the resulting matrix will be 2x200 and contain rows 3 and 5 from the A matrix. "Select Columns" uses the values in the B input matrix as column indices to extract from the A input matrix. The B input matrix must be a ColumnMatrix containing the valid column index values into the A matrix. For example, if the B matrix contained [3 5] and the A matrix is 100x200, then the resulting matrix will be 100x2 and contain columns 3 and 5 from the A matrix. "Function" allows an arbitrary function of two variables to be evaluated for each number pair in the two input matrices. This requires that the two matrices are the same size. The variable representing the element from the A matrix is 'x', and the variable for the element from the B matrix is 'y'. The function is specified using SCIRun's simple function parser. There are a number of mathematical functions available for use. They are: +: Add two numbers. Example: 4+3 = 7 -: Subtract one number from another. Example: 4-3 = 1 *: Multiply two numbers. Example: 4*3 = 12 /: Divide one number from another. Example: 12/3 = 4 sin: Sine of a number in radians. Example: sin(x) cos: Cosine of a number in radians. Example: cos(x) sqrt: Square root of a number. Example: sqrt(4) = 2 sqr: Square of a number. Example: sqr(2) = 4, sqrt(sqr(x)) = x ln: Natural logarithm of a number. Example: ln(x) exp: e raised to the nth power. Example: exp(ln(x)) = x log: Log base 10 of a number. Example: log(100) = 2 abs: Absolute value of a number. Example: abs(-3) = 3 pow: One number raised to the power of another. Example: pow(3, 2) = 9 random: Return a uniform random number between 0 and 1. Example: random() ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral 0 1461 3600 2006-11-01T04:14:31Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''EvaluateLinAlgGeneral'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Do some linear algebra on input matrices. ====Detailed Description==== The EvaluateLinAlgGeneral module allows the user to input C++ code linear algebra expressions and then have them dynamically compiled and executed. The input variables are all of MatrixHandle type and are represented by the variables i1, i2, i3, i4, and i5 correlating with which input ports they are connected to. The output variables are MatrixHandle references and are labeled o1, o2, o3, o4, and o5. The supported matrix operations can be found in src/Core/Datatypes/MatrixOperations.h, and are basically addition and multiplication. For example, the default "o1 = i1 * i2;" function would multiply the first two input matrices and put the result on the first output port. "o2 = i1 * 3;" would multiply all of the values in the first input port and put the resulting matrix on the second output port. If you used both lines it would do both. The various SCIRun Matrix headers are also included in addition to MatrixOperations.h. So for example "o1 = scinew DenseMatrix(10, 20);" could be used to return a blank 10x20 dense matrix on the first output port. It is also possible to write loops over the various matrix elements, etc. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary 0 1462 3601 2006-11-01T04:14:35Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''EvaluateLinAlgUnary'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Performs one of a number of selectable unary matrix operations to the input matrix. ====Detailed Description==== One of a number of unary matrix operations can be selected from the GUI and is then applied either to the whole matrix or to each element in the matrix, depending upon which operation is selected. The operations are Round, Ceil, Floor, Normalize, Transpose, Sort, Subtract Mean, or Function. Round, Ceil, and Floor are used to convert each element in the input matrix into an integer value. Normalize linearly transforms each element such that they all end up between 0 and 1. Transpose constructs a new transpose matrix containing the same elements as the input matrix. For example, if the input matrix was of size 4x20, the output matrix will be of size 20x4. Sort does an insertion sort on the elements of the input matrix. The elements will be sorted such that the smallest element will be at the top of the matrix and the largest element will be at the end. If the matrix is not a row or column matrix, the matrix is sorted in a row-scanline order. For example, in a 2x30 matrix, the first row would contain the lower half of the values and the second row would contain the upper half. Subract Mean computes the mean value of the matrix, and then subtracts that value from each element in the matrix. Function allows an arbitrary function to be evaluated for each element in the matrix. The current value is represented as the variable 'x'. For instance, the default 'x+10' function adds 10 to each element in the matrix. A function of just '10' would set each element in the matrix to be 10. The function is specified using SCIRun's simple function parser. There are a number of mathematical functions available for use. They are: +: Add two numbers. Example: 4+3 = 7 -: Subtract one number from another. Example: 4-3 = 1 *: Multiply two numbers. Example: 4*3 = 12 /: Divide one number from another. Example: 12/3 = 4 sin: Sine of a number in radians. Example: sin(x) cos: Cosine of a number in radians. Example: cos(x) sqrt: Square root of a number. Example: sqrt(4) = 2 sqr: Square of a number. Example: sqr(2) = 4, sqrt(sqr(x)) = x ln: Natural logarithm of a number. Example: ln(x) exp: e raised to the nth power. Example: exp(ln(x)) = x log: Log base 10 of a number. Example: log(100) = 2 abs: Absolute value of a number. Example: abs(-3) = 3 pow: One number raised to the power of another. Example: pow(3, 2) = 9 random: Return a uniform random number between 0 and 1. Example: random() ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface 0 1463 3602 2006-11-01T04:14:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ExtractIsosurface'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Yarden Livnat :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ExtractIsosurface extracts an isopotential surface from a scalar field. ====Detailed Description==== The ExtractIsosurface module is used to extract one or more isopotential surfaces from a scalar field. The isopotential surfaces are surfaces for which the scalar value would interpolate to a constant isovalue. The isovalues can be specified in one of several ways. Isovalues can be passed into the field in the 'Optional Isovalues' port. A surface will be created for each value in that matrix. The ExtractIsosurface-probe.net example network demonstrates using the MODULE REFERENCE and MODULE REFERENCE modules to interactively select the isosurface with a probe using this port. Slider allows the user to select one isovalue using a slider bar or to type in one isovalue manually. The slider bar ranges from the minimum and maximum values of the input field. This can be used with great effect to interactively move the isosurface around when the Update: Auto option is specified. Quantity allows for the selection of several regularly spaced isosurfaces. This is particularly useful for isocontouring as it gives a contour-map effect for where the isosurfaces would be located. List allows the user to type in an arbitrary list of isovalues to be used. The numbers should be space separated. In addition to hard numbers, percentages relative to the field minimum and maximum may be specified as well. For instance, '50%' would specify the isovalue in the center of the min-max range, whereas '50.0' would isosurface at a value of 50.0. This module supports several other options. The Update: options are On Release, Manual and Auto. On Release will not re-execute the module until the user releases the Iso Value scroll bar. If the user selects the Manual option, the module will not re-execute until they press the Execute button. The Auto option re-executes the module every time the Iso Value scroll bar moves. If the user selects the Auto Extract from New Field option and a new Field comes in, the module completely re-executes, calculating a new ExtractIsosurface. The Build Output Field determines whether or not a surface field is created. If it is turned off then only the Geometry output port will contain anything. If there is no ColorMap present then the Default Color is used for the output geometry. The ExtractIsosurface can be computed using either the Marching Cubes or NOISE method. Marching cubes requires each element in the field to be examined for those containing the isovalues used to extrac the isosurface. NOISE builds a search structure and then uses that to construct the isosurface. The Marching Cubes method examines the isopotential at the corners of every element within the input field to compute where the isosurface should be located. This operation may be parallelized, and allows the user to specify how many threads are used to do the computation. This is a good choice if examining only a few isovalues. NOISE builds a search structure for the field, and then uses that stucture to more quickly compute isosurfaces. This search structure takes longer to create than extracting one Marching Cubes surface, however once the structure is built NOISE can extract subsequent surfaces more quickly. This is a good choice if multiple isosurfaces are to be computed for each field, and can offer better interactive performance than Marching Cubes. Only one thread is used for this method. As of September 2002, this module can manage scalar fields of the following geometry type: LatVolField, StructHexVolField, TetVolField,HexVolField, TriSurfField, QuadSurfField and ImageField. Isocontours are generated for the surface input fields, and ExtractIsosurfaces are generated for the volume input fields. As of Febuary 2003, this module can handle scalar fields that contain cell-centered data. If the data is located at the cells, then the surfaces are created along the appropriate cell faces rather than using interpolated values from the nodes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:BuildNrrdGradients 0 1464 3603 2006-11-01T04:14:41Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildNrrdGradients'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Misc :Author(s): Dave Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Compute the 3D gradient. ====Detailed Description==== Compute the 3D gradient. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField 0 1465 3604 2006-11-01T04:14:42Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ExtractPlanarSliceFromField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): ARSanderson :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ====Detailed Description==== The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. The Arbitrary Field Slicer input port is a field that has any topology. The field will be sliced and piped to the output port. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:BuildTextureWithGradientsFromNrrds 0 1466 3605 2006-11-01T04:14:46Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildTextureWithGradientsFromNrrds'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Misc :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Set up a volume texture from a 3D scalar nrrd. ====Detailed Description==== Efficiently compute the inputs to NrrdTextureBuilder. The first output port will contain a 4D nrrd where the fast dimension contains normals and values packed together (normal refers to the gradient.) The second output will contain the gradient magnitudes. The first output will be of type unsigned character as expected by NrrdTextureBuilder. The gradient magnitude field is of type float and should be run through UnuQuantize. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField 0 1467 3606 2006-11-01T04:14:46Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GeneratePointSamplesFromField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Robert Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Place seed points in a field. ====Detailed Description==== Place seed points in a field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ChooseNrrd 0 1468 3607 2006-11-01T04:14:50Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ChooseNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Misc :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ChooseNrrd takes in an arbitrary number of input Nrrds, and pass one of them downstream, based on the port index typed in the UI. ====Detailed Description==== ChooseNrrd takes in an arbitrary number of input Nrrds, and pass one of them downstream, based on the port index typed in the UI. If the Use first valid nrrd option is checked, the module will disregard the port index and iterate over the input ports, passing the first valid data downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget 0 1469 3608 2006-11-01T04:14:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GeneratePointSamplesFromFieldOrWidget'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Chris Moulding :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ====Detailed Description==== GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. The samples can be generated randomly or user selected via a 3D widget. The random sampling can be weighted by importance (determined by the data value of the sample) or left unweighted. The random sampling can also be limited to the selection of node points, rather than points from the interior of the fields elements, by clamping the samples to nodes. The "uniform" distributions are a uniformly random function over the spacial extents of the field (i.e. the elements are weighted by their volume or area), whereas the "scattered" distributions are a uniformly random function over the elements only (i.e. all elements have the same weight). The "importance weighted" distributions multiply the existing weight of a sample by the interpolated data value associated with it, while the "not weighted" distributions leave the existing weight of a sample unchanged. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ClassifyHeadTissuesFromMultiMRI 0 1470 3609 2006-11-01T04:14:55Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ClassifyHeadTissuesFromMultiMRI'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Misc :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Tolga Tasdizen's MRI Tissue Classifier Code. ====Detailed Description==== Tolga Tasdizen's MRI Tissue Classifier Code ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField 0 1471 3610 2006-11-01T04:14:55Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GenerateSinglePointProbeFromField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== GenerateSinglePointProbeFromField values in a field. ====Detailed Description==== A GUI Point widget is created and can be moved around in the scene. The GenerateSinglePointProbeFromField Point port contains a PointCloudField field with one point in it at the location of the probe. The value at that point is interpolated from the input field. The input field is also used to determine the initial position and relative size of the probe widget. If there is no input field, a default zero valued probe is returned. The Element Index matrix contains the Index of the item with data that is nearest the cell. A possible use would be to feed the index into MODULE REFERENCE to get out a time-dependent sequence associated with that element. No matrix is sent if there is not an input field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ConvertColorMap2ToNrrd 0 1472 3611 2006-11-01T04:15:00Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertColorMap2ToNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Converters :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a ColorMap2 into a 256x512x4 floating point image nrrd. ====Detailed Description==== Convert a ColorMap2 into a 256x512x4 floating point image nrrd. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines 0 1473 3612 2006-11-01T04:15:00Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GenerateStreamLines'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Chris Moulding, Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ====Detailed Description==== The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. The Vector Field input port is the vector field on which the path intergration of the seed points will be performed. This may be a vector field with any volume geometry type. Surfaces and lower order fields do not currently work due to numerical error. The second input port, Seeds, contains the initial values for which the vector will be computed. This may be a field of any type, as just the node positions are used. Seeds which are not contained within the vector field are just discarded. The module requires use of both field inputs in order to execute. The GenerateStreamLines module has one output, Streamlines, a CurveMesh, representing a collection of stream lines computed for the Vector field given the set of initial seed points. This module uses one of several similar numeric integration methods. They are taken directly from Numerical Analysis by David Kincaid and Ward Cheney, c1991. Adams-Bashforth is a Multi-Step method that offers the fastest performance by reusing existing samples when possible. It presents some interesting artifacts on discontinuous models such that it is easy to visualize where those discontinuities take place. Heun is a second order Runge-Kutta solver, and is sufficient for most smoothly varying fields, such as linearly interpolated gradient fields over volume elements. Classic 4th Order Runge-Kutta is presented for reference and provides excellent results in general. Adaptive Runge-Kutta-Fehlberg is a 5/6 order solver which provides the best overall results at the cost of more computation time. It is also the only adaptive method, meaning the step size of the algorithm is adjusted dynamically as the stream moves through the vector field. All of the computation methods are similar in that they take a step, (based upon the Step Size indicated) examine the derivative at that point, and then procede in that new direction. Adaptive Runge-Kutta-Fehlberg also determines if a stepsize correction is necessary. This determination is based upon the Error Tolerance value. The GenerateStreamLines GUI includes text fields for Error Tolerance, Step Size, and Maximum Steps. The Error Tolerance text field represents the margin of error when doing an adaptive calculation of the stream lines. Maximum Steps represents the maximum number of iterations. The user can specify whether streamlines are computed in negative and/or, positive directions by changing the Direction radio buttons. The Color Style options are based on either the seed number, integration step, distance from the seed, or the total distance, which will affect how values are attached to the output field. By selecting seed number, the output field will range from zero to the number of seed points so that every stream line has exactly one value. The integration step option changes the value of output field such that they start at zero where the seed point is at and go up by one for each integration step away in either direction. The distance from seed is similar to the integration step but based on the cord length distance from the seed. Whereas the total length is based on the total cord length from the seed point. The Filter Colinear Points check box is a postprocess on the streams. It passes over the streams and removes all points that are too close together, as well as points that are colinear. It is useful for rendering the streamlines as it greatly simplifies them while retaining their visual appearance. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ConvertColorMapToNrrd 0 1474 3613 2006-11-01T04:15:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertColorMapToNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Converters :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a SCIRun ColorMap to a Nrrd. ====Detailed Description==== Convert a SCIRun ColorMap to a Nrrd in the format 4xN. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic 0 1475 3614 2006-11-01T04:15:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GenerateStreamLinesWithPlacementHeuristic'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Frank B. Sachse, Elisha Hughes :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Generate optimal stream lines ====Detailed Description==== The GenerateStreamLinesWithPlacementHeuristic module finds optimal streamlines by comparison between a source field and a rendered steamlines image. GenerateStreamLinesWithPlacementHeuristic takes five fields as input: (1) Source, contains a field into which is rendered during processing. By default random seed points are chosen from the underlying mesh. (2) Weighting, contains information about the weighting of render operations. Commonly, the magnitude of the flow field is used as input. (3) Flow, describes the vector field, necessary for generation of streamlines. (4) Compare, describes the data, which should be reconstructed by the streamlines. Commonly, the magnitude of the flow field is used as input. (5) Seed points (optional), selects seed points from the underlying mesh. GenerateStreamLinesWithPlacementHeuristic outputs the optimal streamlines as CurveMesh field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ConvertMatrixToNrrd 0 1476 3615 2006-11-01T04:15:09Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertMatrixToNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Converters :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a SCIRun Matrix to a single Nrrd in the case of a Dense or Column Matrix or convert a Sparse Row Matrix to three Nrrds (Data, Rows, and Columns). ====Detailed Description==== Convert a SCIRun Matrix to a single Nrrd in the case of a Dense or Column Matrix or convert a Sparse Row Matrix to three Nrrds (Data, Rows, and Columns). If the input Matrix is a Column Matrix, the module will produe a 1D Nrrd of doubles containing the data. If the input Matrix is a Dense matrix, the module will produce a 2D Nrrd of Doubles. If the input Matrix is a Sparse Row Matrix, the module will produce three Nrrds. The first output port contains the Data as a 1D Nrrd representing the non-zero entries in the Sparse Row Matrix. The second output will contain the Rows Nrrd which is the row accumulation buffer containing R+1 entries where R is the number of rows and Rows[N+1]-Rows[N] is the number of non-zero entries in row N. The last output will be the Columns Nrrd containing the column number for each non-zero data entry. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh 0 1477 3616 2006-11-01T04:15:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetCentroidsFromMesh'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Computes a PointCloudField containing all of the element centers for a field. ====Detailed Description==== The Centriods module computes a PointCloudField containing all of the element centers for a field. For instance, if the input field is a TetVolField then the output field would contain the center of each tetrahedra. An input PointCloudField would return the same data locations. The output field is always a PointCloudField of doubles, and contains no data. If data is needed at the points then an interpolation module should be used to recover them. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ConvertNrrdToColorMap2 0 1478 3617 2006-11-01T04:15:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertNrrdToColorMap2'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Converters :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Load an Image and output it as a ColorMap2 ====Detailed Description==== The input nrrd must be and rgba image that is 512 x 256, so a 3 dimensional nrrd that is 4 x 512 x 256 Typically this is used to create a precise image to texture your volume vis with. The inputs to EditTransferFunc2 take a ColorMap2 and a nrrd. That nrrd is a 2d histogram, which can be saved and converted to an image readable by 3rd party painting programs. You can then paint the areas of the image as you wish, and convert it back to a nrrd, then feed it to this module to send downstream as a ColorMap2. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle 0 1479 1661 2006-11-01T04:15:19Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetColorMap2sFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a 'colormap2' object from a bundle. ====Detailed Description==== This module retrieves a 'colormap2' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'colormap2' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ConvertNrrdToMatrix 0 1480 3619 2006-11-01T04:15:20Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertNrrdToMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Converters :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a combination of Nrrds to a SCIRun Matrix of type Column, Dense or Sparse. ====Detailed Description==== Convert a combination of Nrrds to a SCIRun Matrix of type Column, Dense or Sparse. To create a ColumnMatrix, the first port, or the Data port, should be the only one connected. For a column matrix, the Nrrd should be a 1D Nrrd. To create a Dense Matrix, a 2D Nrrd should be passed into the Data port. To create a SparseRow Matrix, the module needs Data, Rows, and Columns. The Data Nrrd should be a 1D Nrrd containing the non-zero entries. Its size will be referred to as NNZ (number of non-zeros). The Rows Nrrd is the row accumulation buffer containing R+1 entries where R is the number of rows and Rows[N+1]-Rows[N] is the number of non-zero entries in row N. The Columns Nrrd should be a 1D Nrrd with size NNZ as well. The Columns Nrrd contains the column number for each non-zero data entry. It should be sorted by row/col order and correspond with the spaces in the Rows Nrrd. The number of columns can be specified in the UI by clicking the Columns (for Sparse Row Matrix) radiobutton and entering the number of columns. If the Auto radiobutton is selected, the module will attempt to determine the number of columns based on the largest entry of the Columns Nrrd. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle 0 1097 1666 1556 2006-11-01T04:15:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetColorMapsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a 'colormap' object from a bundle. ====Detailed Description==== This module retrieves a 'colormap' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'colormap' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ConvertNrrdToRasterField 0 1481 3620 2006-11-01T04:15:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertNrrdToRasterField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Converters :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a combination of Nrrds to a SCIRun Field. This converter works on regular, unstructured and structured Data. If the module receives just Data, it will most likely be a regular Field (i.e. ScanLine, Image, LatVol). For structured and unstructured Fields, the data is optional. If Points but no Connections are given, a structured dataset will most likely be created (i.e. StructQuad, StructHex). If Points and Connections are given, an unstructured field will most likely be created (i.e. Curve, TriSurf, QuadSurf, TetVol, HexVol). If a Field is passed in, the module will try to use that Field's mesh. ====Detailed Description==== Convert a combination of Nrrds to a SCIRun Field. This converter works on regular, unstructured and structured Data. If the module receives just Data, it will most likely be a regular Field (i.e. ScanLine, Image, LatVol). For structured and unstructured Fields, the data is optional. If Points but no Connections are given, a structured dataset will most likely be created (i.e. StructQuad, StructHex). If Points and Connections are given, an unstructured field will most likely be created (i.e. Curve, TriSurf, QuadSurf, TetVol, HexVol). If a Field is passed in, the module will try to use that Field's mesh. The first port is for Points. The second port should contain a Nrrd of connectivity. This should be in the form P x N where P is the points in a connection and N is the number of connections. For example, a TriSurf would have a connections nrrd that would be 3 x N. The Unstructured Field will be determined based on the size of P. A size of two will convert to a CurveMesh, a size of three will be a TriSurf, etc. In the case of P being equal to size 4, there is an ambiguity whether or not the resulting Field should be a TetVolField or QuadSurfField. This can be indicated in the ConvertNrrdToRasterField UI under the option Unstructured Cell Type when Points per Connection = 4. If Auto is selected, then the module will try to determine the Cell Type based on the Nrrd's Properties. If it cannot be determined, a Cell Type of TetVolField. If the Points Nrrd happens to be in the form of N x P, the module will try to determine that and handle it accordingly. The third port is the Data port. For the case of Regular data, this should be the only port connected. If it contains vector or tensor data values, they should be in the first axis and it's kind should be set accordingly. This can be done with the MODULE REFERENCE module. The last port is the an optional Field input. If this is connected, the module will attempt to use the Mesh from this Field for the new Field. If the input Field's Mesh does not match the information given in the other ports, it will default to the behavior above an disregard the incoming Field. The UI option Permute Data will permute Fortran data or data in the form (k,j,i). The UI option Build Eigen Decomposition for Tensor Field" will build the decomposition using a call to the Teem library (tenEigenSolve_f). The UI option of Structured/Unstructured Ambiguity is when the Data, or Points has a size of one in the first dimension. This could be a Point Cloud or Struct Curve. If Auto is selected, the module will try to determine based on the Nrrd Property's Cell Type. If it cannot be determined, the module will create a Point Cloud. The UI settings will always over-ride the NrrdProperties. The list of Nrrd Names at the bottom of the UI is for information only. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:ConvertRasterFieldToNrrd 0 1482 3621 2006-11-01T04:15:30Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ConvertRasterFieldToNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Converters :Author(s): David Weinstein, Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Take the data from a field or fields and wrap it with a nrrd and pass it out. ====Detailed Description==== Inputs: a field or multiple fields that share the *same* mesh. Output: a NrrdData. This module converts data from a given field, into NrrdData. NrrdData is the SCIRun object that is mostly a wrapper around a Nrrd*. There are many operations that can be applied to the data as a nrrd, <slink text="http://www.cs.utah.edu/~gk/teem/unnrrdu/index.html"></slink> many of which are supported in this Teem package. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix 0 1483 3622 2006-11-01T04:15:30Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetColumnMatrixFromMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein, Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ====Detailed Description==== The GetColumnMatrixFromMatrix module runs in one of three different modes: interactive mode uses the "Matrix" input port (first port) only. The other two ports, Weight Vector and Current Index, run the module without having to select vectors by hand. When the module runs in interactive mode, the user selects which vectors they want to include in the playback. In the GetColumnMatrixFromMatrix module dialog window, Start and End sliders enable the user to set the playback range, the Current Value function specifies which row or column to send downstream, and the Delay function controls the time delay and speed of the animated points on the mesh. There are several Play Modes in the GetColumnMatrixFromMatrix GUI dialog window: Once, Loop, Bounce1, and Bounce2. The Once mode plays the animation from current value to the end of the selected range of column and rows on the matrix. The Loop mode plays the selected range endlessly, reversing directions after reaching the start or end of the range. Bounce1 only plays endpoints once, while Bounce2 repeats them. For example, if the range is 1 through 3, Bounce1 will play { 1 2 3 2 1 2 3 2 1 . . .}, while Bounce2 will play {1 2 3 3 2 1 2 3 3 2 1}. Using the Delay text field in the GUI dialog window, the user specifies a delay (in milliseconds) that controls the speed at which the selected rows or columns may be sent to the output port. The Increment entry can be used to skip through the input matrix by more than one element at a time. This can be used with the Send Amount entry to send more than one row/column at a time. For instance, if both entries are set to three, the module will send three rows/columns at a time, which can then be mapped onto a vector field by the MODULE REFERENCE module. The second input port of the GetColumnMatrixFromMatrix module, Weight Vector, allows the user to to select mutliple columns of a matrix and add them together. The Weight Vector port can only take a column vector as input. In the GetColumnMatrixFromMatrix module, the user selects the indices of the column or row they are working with to calculate this weighting. The third input port, Current Index, synchronizes the playback of two GetColumnMatrixFromMatrix modules; the Selected Index of one can be connected to the Current Index Port of another. The following examples show use of the input ports. First, to send Row 5 of a matrix, select Row, making sure that 5 falls between the start and end ranges. Then, enter '5' into the Current Index slot, and execute the module. To send Rows 1 through 5 of a matrix: select Row with a start value of 1. Next, set the end value to 5 and set the Current Index to 1. Select 'Once' from the play modes, press the 'Play' buttons, and rows 1-5 will be sent, one after the other, to the output port. Synchronize two GetColumnMatrixFromMatrix modules as follows. First, attach the module's Selected Index output port to the GetColumnMatrixFromMatrix module to be synchronized, making certain that the Row and Column selections for each module are consistent. You have now synchronized the downstream and upstream GetColumnMatrixFromMatrix modules. The following example illustrates use of the second input port: Current Index. The LeadFieldSourceLocalization module uses this second input port to extract three components from a matrix and add them together with weighting. For example, if you wanted to extract the matrix 2, 5, and 7, the column matrix would have only those column entries. Since we also have weighting, you can take the weighted combination of that matrix. You can do this by taking half of column 2, half of column 5, and a quarter of column 7. The column matrix would show these weights in column 2 as 1/2, column 5 as 1/2, and column 7 as 1/4, for a vector length of 6 as a column matrix for that second entry. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ExportImage 0 1484 3623 2006-11-01T04:15:35Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ExportImage'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: DataIO :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Output a Nrrd as an image file. ====Detailed Description==== ExportImage uses the ImageMagick libaries to convert a Nrrd into an image file in one of the many formats supported by ImageMagick. The Nrrd can be G, RGB, or RGBA data consisting of unsigned characters, unsigned shorts, floats, or doubles. If the data is float or double then it should be between 0 and 1. See MODULE REFERENCE for more on the data format. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary 0 1485 3624 2006-11-01T04:15:35Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetFieldBoundary'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The GetFieldBoundary module extracts a boundary surface from a volume field. ====Detailed Description==== The GetFieldBoundary module extracts the bounding surface of the incoming field, making it into a new field that it outputs through the BoundaryField port. This module does not have a GUI. It has one input port, Input, and two output ports, Boundary, and Mapping. The GetFieldBoundary module builds an appropriate mesh from the incoming field. GetFieldBoundary will build a QuadSurfMesh, TriSurfMesh, or CurveMesh as appropriate for the boundary type of the input field. The Boundary output port will contain the new boundary mesh with no data interpolated onto it. If the data from the input field is desired on the output field, we recommended that using the Mapping output, running the results through MODULE REFERENCE in order to draw values from the input field. Any interior face should be shared by two cells. The boundary surface is calculated as the module checks each face that is shared by two or more cells. The faces that exist in one cell only are boundary faces. This module can be used as a debugging tool becuase errors or holes in the mesh will show up as boundary faces. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle 0 1098 1667 1557 2006-11-01T04:15:40Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetFieldsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a 'field' object from a bundle. ====Detailed Description==== This module retrieves a 'field' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'field' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ImportImage 0 1486 3625 2006-11-01T04:15:40Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportImage'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: DataIO :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Use ImageMagick libraries to open neary any image file. ====Detailed Description==== ImportImage will open any of the image types supported by ImageMagick. The image is opened as a 3xWxH nrrd containing float data ranging between 0 and 1. At this time only the RGB channels of the image are preserved, any opacity channel is discarded. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName 0 1488 1690 2006-11-01T04:15:45Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetFileName'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This Module gets a filename and stores it in a string. ====Detailed Description==== This Module gets a filename and stores it in a string. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ImportNrrdFromAnalyze 0 1487 3626 2006-11-01T04:15:45Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportNrrdFromAnalyze'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: DataIO :Author(s): Jenny Simpson :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert Analyze data to the NRRD format which can be used in SCIRun networks. ====Detailed Description==== This module provides support for converting <ulink text="http://www.mrc-cbu.cam.ac.uk/Imaging/Common/analyze_fmt.shtml">Analyze</ulink> data to the <ulink text="http://teem.sourceforge.net/nrrd/index.html">NRRD</ulink> format which can be used in SCIRun networks. An important point is that this module is dependent on the Insight package, so both the Teem and Insight packages have to be enabled in the SCIRun build in order for the ImportNrrdFromAnalyze converter to work. Some brief background information about the Analyze format will be helpful in understanding how to load data using the ImportNrrdFromAnalyze reader. For a detailed description of the Analyze format, please refer to the documentation pages for <ulink text="http://www.mrc-cbu.cam.ac.uk/Imaging/Common/analyze_fmt.shtml">Analyze</ulink>. Analyze files contain volume data, often from MRI. The Analyze format includes two different files for each volume: a header (extension ".hdr") file and and image (extension ".img") file. All of the image data for a volume is contained in a single image file. Since these files come in pairs, the ImportNrrdFromAnalyze module requires the user to specify a ".hdr" file to read. Then the module looks for the corresponding ".img" file in the same directory as the ".hdr" file. The ImportNrrdFromAnalyze module requires the user to specify a directory containing the data files. One or more Analyze files may be selected for processing. If the files are recognized as valid Analyze format, they are read in and converted to the NRRD format which can then be passed downstream to certain other SCIRun modules. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:ImportNrrdFromDicom 0 1489 3628 2006-11-01T04:15:50Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportNrrdFromDicom'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: DataIO :Author(s): Jenny Simpson :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert DICOM data to the NRRD format which can be used in SCIRun networks. ====Detailed Description==== This module provides support for converting <ulink text="http://www.psychology.nottingham.ac.uk/staff/cr1/dicom.html">DICOM</ulink> data to the <ulink text="http://teem.sourceforge.net/nrrd/index.html">NRRD</ulink> format which can be used in SCIRun networks. An important point is that this module is dependent on the Insight package, so both the Teem and Insight packages have to be enabled in the SCIRun build in order for the ImportNrrdFromDicom converter to work. Some brief background information about the DICOM format will be helpful in understanding how to load data using the ImportNrrdFromDicom reader. For a detailed description of the DICOM format, please refer to the documentation pages for <ulink text="http://www.psychology.nottingham.ac.uk/staff/cr1/dicom.html">DICOM</ulink>.Also, note that the DICOM format is "flexible", meaning that implementations tend to vary slightly, so the descriptions that follow are not guaranteed to be universally applicable. DICOM is a standard file format that stores volume data from computed tomography (CT) scans, magnetic resonance imaging (MRI), and ultrasound. Each DICOM file has a header that is followed by image data. While a single DICOM file can contain image data for multiple slices of scanned data, usually each DICOM file contains only one image frame corresponding to one slice. For example, for a scan consisting of 60 slices, there would most likely be 60 DICOM files. This logical grouping of DICOM files is called a series. As a result, when loading DICOM data using the ImportNrrdFromDicom module, one or more series' each containing one or more files can be loaded. The ImportNrrdFromDicom module requires the user to specify a directory containing the data files. One or more series' of DICOM files can be selected for processing. If the files are recognized as valid DICOM format, they are read in and converted to the NRRD format which can then be passed downstream to certain other SCIRun modules. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices 0 1490 3629 2006-11-01T04:15:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetHexVolSheetBasedOnEdgeIndices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Jason Shepherd :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Removes a layer of hexes corresponding to the input edge ids. ====Detailed Description==== The GetHexVolSheetBasedOnEdgeIndices module removes a layer of hexahedral elements corresponding to the sheet uniquely defined by the input edge ids. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField 0 1491 3630 2006-11-01T04:15:55Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetInputField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Examples :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Most basic example of Field Input in a SCIRun module. ====Detailed Description==== Get a Field from the input port and print out the pointer to the field when executed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:MiscProbe 0 1492 3631 2006-11-01T04:15:55Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MiscProbe'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Misc :Author(s): Anastasia Mironova :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds the functionality of gage to SCIRun. ====Detailed Description==== This module adds the functionality of gage to SCIRun. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:ReadNrrd 0 1493 3632 2006-11-01T04:16:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: DataIO :Author(s): David Weinstein, Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Open a raw nrrd or a SCIRun wrapped nrrd. ====Detailed Description==== Interface to introdude a NrrdData into the net. ReadNrrd can open a raw nrrd, or a previously saved SCIRun wrapped nrrd (NrrdData). If the first axis is vector or tensor data, make sure that the nrrdKind for that axis is set appropriately. This can be checked via the MODULE REFERENCE module and changed via the MODULE REFERENCE module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput 0 1494 3633 2006-11-01T04:16:06Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetInputFieldAndSendAsOutput'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Examples :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Most basic example of Field Output in a SCIRun module. ====Detailed Description==== Get a Field from the input port and print out the pointer to the field when executed, and send the same field downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:ReportNrrdInfo 0 1495 3634 2006-11-01T04:16:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportNrrdInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Misc :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ReportNrrdInfo is used to view the attributes of Nrrd's. ====Detailed Description==== Display in the ui all attributes of the input nrrd for each axis in the Nrrd. Display all info in the modules UI. The data type, dimensionality, and label, data center, kind, size, spacing, min, max along each axis in the Nrrd. If it is not stored in the Nrrd --- is displayed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle 0 1099 1668 1558 2006-11-01T04:16:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetMatricesFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a 'matrix' object from a bundle. ====Detailed Description==== This module retrieves a 'matrix' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'matrix' object. Since Nrrd and Matrix objects can represent the same kind of data. The bundle class has a built in converter from matrix to nrrd. Hence all compatible matrix objects are listed as well and will be converted on the spot if they are selected. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:SelectTimeStepFromNrrd 0 1496 3635 2006-11-01T04:16:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SelectTimeStepFromNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Misc :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The SelectTimeStepFromNrrd module allows users to select a single time step or column from a Misc that has a time axis. The user can also select a range of time indecies and send them to the output port one at a time. This module allows the user to animate Through a time series. ====Detailed Description==== When the module runs in interactive mode, the user selects which vectors they want to include in the playback. In the SelectTimeStepFromNrrd module dialog window, Start and End sliders enable the user to set the playback range, the Current Value function specifies which row or column to send downstream, and the Delay function controls the time delay and speed of the animated points on the mesh. There are several Play Modes in the SelectTimeStepFromNrrd GUI dialog window: Once, Loop, Bounce1, and Bounce2. The Once mode plays the animation from current value to the end of the selected range of column and rows on the matrix. The Loop mode plays the selected range endlessly, reversing directions after reaching the start or end of the range. Bounce1 only plays endpoints once, while Bounce2 repeats them. For example, if the range is 1 through 3, Bounce1 will play { 1 2 3 2 1 2 3 2 1 . . .}, while Bounce2 will play {1 2 3 3 2 1 2 3 3 2 1}. Using the Delay text field in the GUI dialog window, the user specifies a delay (in milliseconds) that controls the speed at which the selected rows or columns may be sent to the output port. The Increment entry can be used to skip through the input matrix by more than one element at a time. This can be used with the Send Amount entry to send more than one row/column at a time. For instance, if both entries are set to three, the module will send three rows/columns at a time, which can then be mapped onto a vector field by the MODULE REFERENCE module. This module is much more efficient if the Time axis is the last (slowest) axis in the input NRRD. This is because the output of each timestep is a contiguous chunk of the input and can thus be sent as a pointer offset rather than an interleaved memory copy. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle 0 1100 1669 1559 2006-11-01T04:16:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetNrrdsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a 'nrrd' object from a bundle. ====Detailed Description==== This module retrieves a 'nrrd' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'nrrd' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:SetNrrdProperty 0 1497 3636 2006-11-01T04:16:36Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SetNrrdProperty'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Misc :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Set a Property for a Nrrd. ====Detailed Description==== Set a Property for a Nrrd. The property can then be used by downstream modules to determine various things about the Nrrd. This module is only used for editing string properties. The properties most commonly set are: name: The name of the Nrrd. units: What units are used when measuring a Nrrd. Properties are generally used for domain specific information, such that the number used in the base SCIRun module set is quite limited. There are also several properties which are not currenty editable with this module. These include the multi-value properties and properties which are not just strings. These include the minmax property which is a cache of the min and max values for a Nrrd, and the conductivities_table which contains conductivities for an indexed Nrrd. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle 0 1101 1671 1560 2006-11-01T04:16:37Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetPathsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a 'path' object from a bundle. ====Detailed Description==== This module retrieves a 'path' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'path' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendAnhist 0 1498 3637 2006-11-01T04:16:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendAnhist'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Generate barycentric histograms of anisotropy. The barycentric space used is either one of Westin's triple of spherical, linear, and planar anisotropy. The bin counts in the histogram are weighted by the confidence value. ====Detailed Description==== Generate barycentric histograms of anisotropy. The barycentric space used is either one of Westin's triple of spherical, linear, and planar anisotropy. The bin counts in the histogram are weighted by the confidence value. Weights NRRD is optional and if given as input, determines how to weigh contributions to histogram. If given, the value in the NRRD at the corresponding location will be the bin count increment. If not given, the increment is one bin count per sample. Right: Sample a right-triangle-shaped region, instead of a roughly equilateral triangle. Westin Version : Which version of Westin's anisotropy metric triple to use, either integers 1 or 2. Resolution : resolution of anisotropy plot. This should be an integer. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol 0 1499 3638 2006-11-01T04:16:46Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetSliceFromLatVol'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): ARSanderson :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ====Detailed Description==== The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. The Field Slicer input port is a field that has regular topology. The field will be reduced by 1 dimension and piped to the output port. The user must supply two input values via the module GUI, the axis the field is reduced along and location along the selected axis. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendAnplot 0 1500 3639 2006-11-01T04:16:48Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendAnplot'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Graph anisotropy metric in barycentric coords. The metrics all vary from 0.0 to 1.0, and will be sampled in the lower right half of the image. The plane on which they are sampled is a surface of constant trace. ====Detailed Description==== Graph anisotropy metric in barycentric coords. The metrics all vary from 0.0 to 1.0, and will be sampled in the lower right half of the image. The plane on which they are sampled is a surface of constant trace. Resolution : resolution of anisotropy plot. This value should be an integer. Sample Whole Triangle of Constant Trace : check to sample the whole triangle of constant trace, instead of just the sixth of it in which the eigenvalues have the traditional sorted order. Set Outside Pixel Values to NaN : set the pixel values outside the triangle to be NaN. If not checked they will be set to 0. Anisotropy Metric to Plot : Which anisotropy metric to plot. All the Westin metrics come in two versions. Currently supported: cl1, cl2: Westin's linear; cp1, cp2: Westin's planar; ca1, ca2: Westin's linear + planar; cs1, cs2: Westin's spherical (1-ca); ct1, ct2: GK's anisotropy type (cp/ca); ra: Basser/Pierpaoli relative anisotropy; fa: Basser/Pierpaoli fractional anisotropy/sqrt(2); vf: volume fraction = 1-(Basser/Pierpaoli volume ratio); tr: trace. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle 0 1102 1672 1561 2006-11-01T04:16:50Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetStringsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a 'string' object from a bundle. ====Detailed Description==== This module retrieves a 'string' object from a bundle by specifying the name of that object. The module has three output ports that each can be programmed to retrieve a specific 'string' object. The module's first bundle output port just generates a copy of the input bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendAnscale 0 1501 3640 2006-11-01T04:16:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendAnscale'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Scale the anisotropic component of the tensors. This maintains the isotropic component of the tensor, and fixes either the trace or determinant, while scaling up (or down) the deviatoric component of the tensor. Good for exaggerating the shape of nearly isotropic tensors. ====Detailed Description==== Scale the anisotropic component of the tensors. This maintains the isotropic component of the tensor, and fixes either the trace or determinant, while scaling up (or down) the deviatoric component of the tensor. Good for exaggerating the shape of nearly isotropic tensors. Scale: Amount by which to scale deviatoric component of tensor. This value should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix 0 1502 3641 2006-11-01T04:16:55Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''GetSubmatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Select a subset of a matrix. ====Detailed Description==== The GetSubmatrix module allows you to select a contiguous GetSubmatrix from an input matrix. The sliders are used to select a row and column range of the input field. The block of values covered by the sliders is then sent to the output matrix. The range bounds can be specified without using the GUI sliders. If a matrix is attached to the 'Optional Range Bounds' port then the range is extracted from that matrix instead. (0,0) will be the minimum row, (1, 0) is the maximum row, (0,1) is the minimum column, and (1,1) is the maximum column. All other values in the 'Optional Range Bounds' matrix are ignored. If the bounds do not fall within the size of the input matrix only the existing values are sent. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendAnvol 0 1503 3642 2006-11-01T04:16:57Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendAnvol'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Apply an anisotropy metric to a DT volume. The anisotropy value will be zero in the locations which don't meet the given confidence threshold. ====Detailed Description==== Apply an anisotropy metric to a DT volume. The anisotropy value will be zero in the locations which don't meet the given confidence threshold. Anisotropy Metric : Which anisotropy metric to plot. All the Westin metrics come in two versions. Currently supported: cl1, cl2 : Westin's linear. cp1, cp2 : Westin's planar. ca1, ca2 : Westin's linear + planar. cs1, cs2 : Westin's spherical (1-ca). ct1, ct2 : GK's anisotropy type (cp/ca). ra : Basser/Pierpaoli relative anisotropy. fa : Basser/Pierpaoli fractional anisotropy/sqrt(2). vf : volume fraction = 1-(Basser/Pierpaoli volume ratio). tr : trace Threshold : The confidence threshold. This value should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle 0 1103 1675 1562 2006-11-01T04:16:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertBundlesIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'bundle' object to a bundle stream. ====Detailed Description==== This module adds a 'bundle' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'bundle' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'bundle' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendBmat 0 1504 3643 2006-11-01T04:17:01Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendBmat'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Calculate B-matrix given gradient directions. ====Detailed Description==== Calculate B-matrix given gradient directions, assuming no diffusion weighting from the other imaging gradients. The input is a 3-by-N array of floats or doubles, each row being one of the gradient directions used for diffusion-weighted imaging. A plain text file with one gradient per line, no punctuation, is an easy way to specify this information. The gradient vector coefficients are used as is, without normalization (since different gradient strengths are sometimes desired). The output has one row of the B-matrix per line, with coefficient ordering Bxx, Bxy, Bxz, Byy, Byz, Bzz, and with the off-diagonal elements NOT pre-multiplied by 2. List of Gradients : List of gradients, one gradient per line. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle 0 1505 1676 2006-11-01T04:17:03Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertColorMap2sIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'colormap2' object to a bundle stream. ====Detailed Description==== This module adds a 'colormap2' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'colormap2' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'colormap2' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendEpireg 0 1506 3645 2006-11-01T04:17:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEpireg'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Register diffusion-weighted echo-planar images. ====Detailed Description==== Register diffusion-weighted echo-planar images. This registration corrects the shear, scale, and translate along the phase encoding direction (assumed to be the Y (second) axis of the image) caused by eddy currents from the diffusion-encoding gradients with echo-planar imaging. The method is based on calculating moments of segmented images, where the segmentation is a simple procedure based on blurring (optional), thresholding and connected component analysis. The registered DWIs are resampled with the chosen kernel, with the seperate DWIs stacked along axis 0. List of Gradients : List of gradients, one gradient per line. Reference :which of the DW volumes (zero-based numbering) should be used as the standard, to which all other images are transformed. Using -1 means that 9 intrinsic parameters governing the relationship between the gradient direction and the resulting distortion are estimated and fitted, ensuring good registration with the non-diffusion-weighted T2 image (which is never explicitly used in registration). Otherwise, by picking a specific DWI, no distortion parameter estimation is done. This value should be an integer. Blur X :standard devs in X direction of gaussian filter used to blur the DWIs prior to doing segmentation. This blurring does not effect the final resampling of registered DWIs. Use 0.0 to indicate no blurring This value should be a float. Blur Y :standard devs in Y direction of gaussian filter used to blur the DWIs prior to doing segmentation. This blurring does not effect the final resampling of registered DWIs. Use 0.0 to indicate no blurring This value should be a float. Threshold : Threshold value to use on DWIs, to do initial seperation of brain and non-brain. If the Use Default Threshold checkbox is checked, the threshold is determined automatically by histogram analysis. CC Analysis : Use connected component analysis, after thresholding and before moment calculation. Doing connected components analysis usually gives better results because it converts the thresholding output into something much closer to a real segmentation. Fitting : Only meaningful when the Reference equals -1. hen doing linear fitting of the intrinsic distortion parameters, it is good to ignore the slices for which the segmentation was poor. A heuristic is used to rank the slices according to segmentation quality. This option controls how many of the (best) slices contribute to the fitting. Use 0 to disable distortion parameter fitting. This value should be a flot. Kernel : kernel for resampling DWIs along the phase-encoding direction during final registration stage. Sigma : sigma used when kernel is gaussian. Extent : extent used when kernel is gaussian. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle 0 1104 1677 1563 2006-11-01T04:17:07Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertColorMapsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'colormap' object to a bundle stream. ====Detailed Description==== This module adds a 'colormap' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'colormap' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'colormap' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendEstim 0 1507 3646 2006-11-01T04:17:10Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEstim'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Estimate tensors from a set of DW images. ====Detailed Description==== Estimate tensors from a set of DW images. The various DWI volumes must be stacked along axis 0 (as with the output of "tend epireg"). The tensor coefficient weightings associated with each of the DWIs, the B-matrix, is given as a seperate array, see "tend bmat" usage info for details. A "confidence" value is computed with the tensor, based on a soft thresholding of the sum of all the DWIs, according to the threshold and softness parameters. B0 is stored as first DWI value : Determines if the B=0 non-diffusion-weighted reference image is known, or if it has to be estimated along with the tensor elements. Check it if true to indicate that the B=0 image is the FIRST input image given , and hence the B-matrix has ONE LESS row than the number of of input images. If false, there is no reference image; all the input images are diffusion-weighted in some way or another, and there exactly as many rows in the B-matrix as there are input images Threshold : Soft : how fuzzy the confidence boundary should be. By default, confidence boundary is perfectly sharp. This value should be a float. Scale : After estimating the tensor, scale all of its elements (but not the confidence value) by this amount. Can help with downstream numerical precision if values are very large or small. This value should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle 0 1105 1678 1564 2006-11-01T04:17:11Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertFieldsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'field' object to a bundle stream. ====Detailed Description==== This module adds a 'field' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'field' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'field' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendEval 0 1508 3647 2006-11-01T04:17:14Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEval'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Calculate one or more eigenvalues in a DT volume. ====Detailed Description==== Calculate one or more eigenvalues in a DT volume. Major, Medium, and Minor : indicate which eigenvalues should be saved out. Threshold : Confidence threshold. This should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf 0 1509 3648 2006-11-01T04:17:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertHexVolSheetFromTriSurf'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Jason Shepherd :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Insert a layer of hexes corresponding to the input TriSurfMesh. ====Detailed Description==== The InsertHexVolSheetFromTriSurf module inserts a layer of hexahedral elements into the input hexahedral mesh which roughly follows the shape of the input triangle mesh. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendEvalAdd 0 1510 3649 2006-11-01T04:17:20Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEvalAdd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Modify shape by adding a constant to all eigenvalues. The orientation of the tensor is unchanged. Note that unlike tend anscale, this operation can completely change the shape of the tensor. ====Detailed Description==== Modify shape by adding a constant to all eigenvalues. The orientation of the tensor is unchanged. Note that unlike tend anscale, this operation can completely change the shape of the tensor. Value to Add : value to add to all eigenvalues (float). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle 0 1106 1679 1565 2006-11-01T04:17:21Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertMatricesIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'matrix' object to a bundle stream. ====Detailed Description==== This module adds a 'matrix' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'matrix' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'matrix' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendEvalClamp 0 1511 3650 2006-11-01T04:17:24Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEvalClamp'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Modify shape by clamping eigenvalues in some range. ====Detailed Description==== Modify shape by clamping eigenvalues in some range. The orientation of the tensor is unchanged. Note that unlike tend anscale, this operation can completely change the shape of the tensor. Min : Eigenvalues are clamped from below by this (the minimum output eigenvalue). Use nan to signify that no minimum clamping should be done. This value should be a float. Max : Eigenvalues are clamped from above by this (the maximum output eigenvalue). Use nan to signify that no maximum clamping should be done. This value should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle 0 1107 1680 1566 2006-11-01T04:17:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertNrrdsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'nrrd' object to a bundle stream. ====Detailed Description==== This module adds a 'nrrd' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'nrrd' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'nrrd' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle 0 1108 1681 1567 2006-11-01T04:17:29Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertPathsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'path' object to a bundle stream. ====Detailed Description==== This module adds a 'path' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'path' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'path' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendEvalPow 0 1512 3651 2006-11-01T04:17:29Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEvalPow'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Modify shape by raising eigenvalues to some power. ====Detailed Description==== Modify shape by raising eigenvalues to some power. The orientation of the tensor is unchanged. Power: Power to which to raise all the eigenvalues. This value should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle 0 1109 1682 1568 2006-11-01T04:17:36Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InsertStringsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module adds a 'string' object to a bundle stream. ====Detailed Description==== This module adds a 'string' object to a bundle stream. In the GUI a name can be specified for the object, which will be used to cataloge the object in the stream. In case the 'string' object has a name property this one can be used as well to name the object in the stream. The module has three input ports, so three 'string' objects can be inserted at the same time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendEvec 0 1513 3652 2006-11-01T04:17:36Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEvec'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Calculate one or more eigenvectors in a DT volume. ====Detailed Description==== Calculate one or more eigenvectors in a DT volume. Major, Medium, and Minor : indicate which eigenvalues should be saved out. Threshold : Confidence threshold. This value should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:TendEvecRGB 0 1514 3653 2006-11-01T04:17:41Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEvecRGB'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Make an RGB volume from an eigenvector and an anisotropy. ====Detailed Description==== Make an RGB volume from an eigenvector and an anisotropy. Eigenvector to use : indicate which eigenvector will be colored. Anisotropy Metric : Which anisotropy metric to use for modulating the saturation of the colors. All the Westin metrics come in two versions. Currently supported are: cl1, cl2 : Westin's linear. cp1, cp2 : Westin's planar. ca1, ca2 : Westin's linear + planar. cs1, cs2 : Westin's spherical (1-ca). ct1, ct2 : GK's anisotropy type (cp/ca). ra : Basser/Pierpaoli relative anisotropy. fa : Basser/Pierpaoli fractional anisotropy/sqrt(2). vf : volume fraction = 1-(Basser/Pierpaoli volume ratio). tr : trace. Background : gray level to use for voxels who's confidence is zero. This should be a float. Gray : he gray level to desaturate towards as anisotropy decreases (while confidence remains 1.0). This value should be a float. Gamma : gamma to use on color components. This value should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal 0 1515 3654 2006-11-01T04:17:41Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InterfaceWithCamal'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Jason Shepherd :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ====Detailed Description==== Create a volumetric tetrahedral mesh from the given boundary mesh. Uses the CAMAL wrapper from Sandia National Labs for the Simulog GHS-3D incremental Delaunay tetrahedralizer. The output field is a tetrahedral field of elements. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit 0 1516 3655 2006-11-01T04:17:47Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InterfaceWithCubit'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendEvq 0 1517 3656 2006-11-01T04:17:47Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendEvq'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Quantize directions of diffusion. Because VTK doesn't do multi-dimensional colormaps, we have to quantize directions of diffusion (usually just the principal eigenvector) in order to create the usual XYZ-RGB coloring. Because eigenvector directions are poorly defined in regions of low anisotropy, the length of the vector (pre-quantization) is modulated by anisotropy, requiring the selection of some anisotropy metric. ====Detailed Description==== Quantize directions of diffusion. Because VTK doesn't do multi-dimensional colormaps, we have to quantize directions of diffusion (usually just the principal eigenvector) in order to create the usual XYZ-RGB coloring. Because eigenvector directions are poorly defined in regions of low anisotropy, the length of the vector (pre-quantization) is modulated by anisotropy, requiring the selection of some anisotropy metric. Evec Index : Which eigenvector should be quantized: a value of 0 for the direction of fastest diffusion (eigenvector associated with largest eigenvalue), values 1 or 2 for other two eigenvectors (associated with middle and smallest eigenvalue) (integer). Anisotropy Metric: Which anisotropy metric to plot. All the Westin metrics come in two versions. Currently supported: cl1, cl2: Westin's linear; cp1, cp2: Westin's planar; ca1, ca2: Westin's linear + planar; cs1, cs2: Westin's spherical (1-ca); ct1, ct2: GK's anisotropy type (cp/ca); ra: Basser/Pierpaoli relative anisotropy; fa: Basser/Pierpaoli fractional anisotropy/sqrt(2); vf: volume fraction = 1-(Basser/Pierpaoli volume ratio); tr: trace. Don't Attenuate the color by Anisotropy : When not selected, regions with low or no anisotropy are very dark colors or black. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen 0 1518 3657 2006-11-01T04:17:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InterfaceWithTetGen'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== Inputs: Main (Required): The main field to be processed by tetgen. The outer surface or Tetrahedral volume field to refine. Points (Optional): If there is a PointCloud attached to this input, the point in it will be included in the output tetvol. Data on this field is meaningless. Region Attribs (Optional): If a PointCloud is attached the points will be considered points inside the different regions. The data will be used as the volume constraint for that region. For the volume constraint to be respected you must pass the 'a' command line switch. Regions (optional): This is a dynamic input, each input should be a surface field, that defines a region inside the Main Input. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendExpand 0 1519 3658 2006-11-01T04:17:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendExpand'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Converts a 7-value DT volume to a 9-value DT volume. The 7-value tensor is confidence value followed by the unique tensor components (Dxx, Dxy, Dxz, Dyy, Dyz, Dzz). The 9-value tensor is the full matrix (Dxx, Dxy, Dxz, Dxy, Dyy, Dyz, Dxz, Dyz, Dzz), which is set to all zeros when the confidence is below the given threshold. ====Detailed Description==== Converts a 7-value DT volume to a 9-value DT volume. The 7-value tensor is confidence value followed by the unique tensor components (Dxx, Dxy, Dxz, Dyy, Dyz, Dzz). The 9-value tensor is the full matrix (Dxx, Dxy, Dxz, Dxy, Dyy, Dyz, Dxz, Dyz, Dzz), which is set to all zeros when the confidence is below the given threshold. Threshold : confidence level to threshold output tensors at. Should be between 0.0 and 1.0. (float) Scale : how to scale values before saving as 9-value tensor. Useful for visualization tools which assume certain characteristic ranges of eigenvalues (float) ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles 0 1110 1673 1569 2006-11-01T04:17:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''JoinBundles'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This merges the contents of multiple bundles into one bundle. ====Detailed Description==== This merges the contents of multiple bundles into one bundle. If the same object name exists in multiple bundles the one from the right most input is chosen and the other one will be purged. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendFiber 0 1520 3659 2006-11-01T04:17:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendFiber'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Extract a single fiber tract, given a start point. ====Detailed Description==== Extract a single fiber tract, given a start point. Currently, only fibers based on 4th-order Runge-Kutta on principal eigenvector are supported via tend. The world space in which fibers are calculated has the volume inscribed in a bi-unit cubecentered at the origin. The output fiber is in the form of a 3xN array of doubles, with N points along fiber. Step Size : stepsize along fiber, in world space. This value should be a double. Stopping Criteria : the conditions that should signify the end of a fiber. Multiple stopping criteria are logically OR-ed and tested at every point along the fiber. These conditions include Fiber Length, Number of Steps, Confidence Threshold, and Anisotropy Threshold. Kernel : Kernel for reconstructing tensor field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields 0 1521 3660 2006-11-01T04:18:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''JoinFields'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== JoinFields glues any number of input fields into one output field. ====Detailed Description==== JoinFields takes in an arbitrary number of input fields and gathers them all up into one output field. If the input fields all have the same editable mesh type then the output field will also be of the same type. If the meshes are not editable or of different mesh types then only their points will be gathered up and a single PointCloudField will be produced. The mesh type is not preserved for non-editable mesh types such as LatVolFields because they cannot be arbitrarily glued together while maintaining their mesh type. Run the fields through the MODULE REFERENCE module before passing them into JoinFields if you want the element structure to be preserved. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendMake 0 1522 3661 2006-11-01T04:18:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendMake'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create DT volume from confidence and eigensystem. The input is in the form of three nrrds, one for confidence values (3D), one for eigenvalues (4D, three evals per voxel), and one for eigenvectors (4D, nine evec components per voxel). ====Detailed Description==== Create DT volume from confidence and eigensystem. The input is in the form of three nrrds, one for confidence values (3D), one for eigenvalues (4D, three evals per voxel), and one for eigenvectors (4D, nine evec components per voxel). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings 0 1523 1691 2006-11-01T04:18:10Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''JoinStrings'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module merges multiple strings into one string. ====Detailed Description==== This module merges multiple strings into one string. The strings are read from the left most port to the right most port and are put into one string. (The string of the left most input port is the first string in the merged data). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendNorm 0 1524 3663 2006-11-01T04:18:10Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendNorm'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Normalize tensor size. ====Detailed Description==== Normalize tensor size. This operates on the eigenvalues of the tensor, and allows normalizing some user-defined weighting of the eigenvalues by some user-defined amount . Major : relative weights to put on major eigenvalue when performing normalization (internally rescaled to have a 1.0 L1 norm). This weightings determines the tensors's size. Value should be a float. Medium : relative weights to put on medium eigenvalue when performing normalization (internally rescaled to have a 1.0 L1 norm). This weightings determines the tensors's size. Value should be a float. Minor :relative weights to put on minor eigenvalue when performing normalization (internally rescaled to have a 1.0 L1 norm). This weightings determines the tensors's size. Value should be a float. Amount : how much of the normalization to perform. Should be a float. Target : target size, post normalization. This value should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination 0 1124 3263 1570 2006-11-01T04:18:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MapFieldDataFromSourceToDestination'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ====Detailed Description==== MapFieldDataFromSourceToDestination will find the corresponding data value in the Source for each node in the Destination Field. The data values can be stored at the nodes, cells, edges, or faces of the mesh at either the input or output ports. If the geometries of the input ports are different, the module will calculate data values for the Destination by interpolation. The MapFieldDataFromSourceToDestination GUI contains a check box for Enable Interpolation and Use Closest Element If Not Interpable. The Enable Interpolation check box allows the user to select the option of interpolation. The user can also select the option of choosing the closest element when a data value cannot be interpolated. The Maximum Closeness option indicates the maximum distance between points of interpolation and data values. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendPoint 0 1525 3664 2006-11-01T04:18:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendPoint'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Describe everything about one sample in a DT volume. ====Detailed Description==== Describe everything about one sample in a DT volume. X : the x corrdinate to sample (integer). Y : the y corrdinate to sample (integer). Z : the z corrdinate to sample (integer). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:TendSatin 0 1526 3665 2006-11-01T04:18:20Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendSatin'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Generate a pretty synthetic DT volume. The surface of a sphere or torus is covered with either linear or planar anisotropic tensors, or somewhere in between. ====Detailed Description==== Generate a pretty synthetic DT volume. The surface of a sphere or torus is covered with either linear or planar anisotropic tensors, or somewhere in between. Generate Torus Dataset : generate a torus dataset if checked, otherwise generate a sphere dataset. Anisotropy Parameter : anisotropy parameter. 0.0 for one direction of linear (along the equator for spheres, or along the larger circumference for toruses), 1.0 for planar, 2.0 for the other direction of linear (from pole to pole for spheres, or along the smaller circumference for toruses) (float) Max Anisotropy : maximum anisotropy in dataset, according to the ca1 anisotropy metric. A value of 1.0 means completely linear or completely planar anisotropy (float) Min Anisotropy : minimum anisotropy in the dataset (float). Boundary : parameter governing how fuzzy the boundary between high and low anisotropy is. Use 0.0 for no fuzziness (float) Thickness : parameter governing how thick region of high anisotropy is (float) Size : dimensions of output volume. For size N, the output is N x N x N for spheres, and 2N x 2N x N for toruses (int) ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol 0 1125 3264 1571 2006-11-01T04:18:23Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MaskLatVol'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): McKay Davis, Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ====Detailed Description==== Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. This is similar to the behavior of the MODULE REFERENCE module, except that the input field is masked rather than clipped out. The function should be a valid C++ expression. It will be dynamically compiled into a function of the form "bool inside_p(double x, double y, double z, TYPE v) { return EXPR; }" where TYPE is the data type contained in the field, and EXPR is the function typed into the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendShrink 0 1527 3666 2006-11-01T04:18:24Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendShrink'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Converts a 9-value DT volume to a 7-value DT volume. The confidence value is set to 1.0 everwhere. You can unu spliced or nrrdSplice() something else in its place later. ====Detailed Description==== Converts a 9-value DT volume to a 7-value DT volume. The confidence value is set to 1.0 everwhere. You can unu spliced or nrrdSplice() something else in its place later. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf 0 1126 3265 1572 2006-11-01T04:18:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MaskLatVolWithTriSurf'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): ? :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ? ====Detailed Description==== ? ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendSim 0 1528 3667 2006-11-01T04:18:29Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendSim'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Simulate DW images from a tensor field. The output will be in the same form as the input to tend estim, , and the B matrix used is the output from tend bmat. The other required inputs are the reference (non-diffusion-weighted) anatomical scalar volume, and the corresponding volume of diffusion tensors. ====Detailed Description==== Simulate DW images from a tensor field. The output will be in the same form as the input to tend estim, , and the B matrix used is the output from tend bmat. The other required inputs are the reference (non-diffusion-weighted) anatomical scalar volume, and the corresponding volume of diffusion tensors. B Value: value for simulated scan. This should be a float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:TendSlice 0 1529 3668 2006-11-01T04:18:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendSlice'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Slice 3D tensors to get slab/image of 3D/2D tensors. ====Detailed Description==== Slice 3D tensors to get slab/image of 3D/2D tensors. Axis : axis along which to slice (integer). Position : position to slice at (integer). Dimension : dimension of desired tensor to output. This value can be either 2 or 3 (integer). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields 0 1530 3669 2006-11-01T04:18:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MergeFields'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Insert the elements from a field into a TetVol or TriSurf field. ====Detailed Description==== No description yet. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:TendSten 0 1531 3670 2006-11-01T04:18:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TendSten'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: Tend :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Calculate structure tensors from a scalar field. Not a diffusion tensor, but it is symmetric and positive-definate. ====Detailed Description==== Calculate structure tensors from a scalar field. Not a diffusion tensor, but it is symmetric and positive-definate. Difference Scale : the radius of the kernel used for differentiation to computer gradient vectors (in pixels). This number should be an integer. Integration Scale : the radius of the kernel used for blurring outer products of gradients in order compute structure tensors (in pixels). This number should be an integer. Downsample Factor : the factor by which to downsample when creating volume of structure tensors. This should also be an integer. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs 0 1532 3671 2006-11-01T04:18:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MergeTriSurfs'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: NewField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Self intersect all the triangles in a trisurf with each other so that none overlap. ====Detailed Description==== The MergeTriSurfs module dices up a TriSurfMesh such that no two triangles overlap each other. For example two or more triangle meshes could be combined with GatherFields and the result then run through MergeTriSurfs to cut along the seams where the two surfaces intersect. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen 0 1533 3672 2006-11-01T04:18:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''PrintHelloWorldToScreen'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Examples :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Most basic example SCIRun module. ====Detailed Description==== Most basic example SCIRun module. Prints out "Hello World" when executed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:Unu1op 0 1534 3673 2006-11-01T04:18:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''Unu1op'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Unary operation on a nrrd. ====Detailed Description==== Unary operation on a nrrd. Operator: Unary operator. Posibilities include: - : negative (multiply by -1.0) r : reciprocal (1.0/value) sin, cos, tan, asin, acos, atan : same as in C exp, log, log10, log1p : same as in C sqrt, cbrt, ceil, floor : same as in C erf : error function (integral of Gaussian) rup, rdn : round up or down to integral value abs : absolute value sgn : -1, 0, 1 if value is less than 0, ==0, or greater than 0 exists : 1 iff not NaN or +/-Inf, 0 otherwise. Type : convert input nrrd to this type prior to doing the operation. To leave it unchanged, check the 'Same as input type' checkbutton. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString 0 1535 1692 2006-11-01T04:18:48Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''PrintMatrixIntoString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module does a sprintf with input matrices into a new string. ====Detailed Description==== This module module takes in a formatted string (a string with %01d, %4.5f, %g etc) and takes the numbers of the input matrix and puts these formatted numbers into the string. The input matrix can be a scalar but can as well be a full dense matrix. The module takes each number out of the matrix and puts it in the formatted number string. For example in order to plot the contents of a 1 by 3 vector one may choose a formatstring of '%f %f %f\n', which will put all three value in the matrix in the formatted string. If there are more numbers in the matrix then in the format string then the current format string will be reused. Hence to get the contents of a 4 by 4 matrix in a comma seperated list one can choose a format string of '%5.5f, '. This will apply this format string to each number in the matrix. In case multiple matrices are supplied, first all the values of the first matrix will be used, then all the numbers of the next matrix etc. When there are more positions in the matrix where one can fill out a number then the rest will be padded with the value 0.0. >Note the formatstring may contain '%s', which will remain in the format string and is not touched by this module. To insert strings use SprintfString instead. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:Unu2op 0 1536 3675 2006-11-01T04:18:48Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''Unu2op'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Binary operation on two nrrds, or on a nrrd and a constant. Either the first or second operand can be a float constant, but not both. To perform the operation on two nrrds, connect both input ports. To have one Nrrd on the left hand side of the operator, connect to the first port and vice versa for the right hand side. ====Detailed Description==== Binary operation on two nrrds, or on a nrrd and a constant. Either the first or second operand can be a float constant, but not both. To perform the operation on two nrrds, connect both input ports. To have one Nrrd on the left hand side of the operator, connect to the first port and vice versa for the right hand side. Operator: Binary operator. Possibilities include: +, -, x, / : add, subtract, multiply, divide ^ : exponentiation (pow) % : integer modulo fmod : same as fmod() in C atan2 : same as atan2() in C min, max: minimum, maximum lt, lte, gt, gte : same as C's less than, less than or equal to, greater than, greater than or equal to eq, neq : same as C's == and != comp : -1, 0, or 1 if 1st value is less than, equal to, or geater than 2nd value exists : if 1st value exists, use it, else use 2nd value Float Input : This value is used in the operation and can be on the left or right side of the operator depending on which Nrrd port is connected. If both nrrds ports are connected, this value will be ignored. Type : type to convert all input nrrds to prior to doing the operation. To leave it unchanged, check the 'Same as input type' checkbutton. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString 0 1538 1695 2006-11-01T04:18:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''PrintStringIntoString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module does a sprintf with input strings into a new string. ====Detailed Description==== This module performs a sprintf with strings, whereever a %s in the format string is found the input string will be pasted. This module takes in a new string for each %s encountered in the format string. If not enough string are supplied an empty string is used. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:Unu3op 0 1537 3676 2006-11-01T04:18:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''Unu3op'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Ternary operation on three nrrds or constants. Can have one, two, or three nrrds, but not zero. ====Detailed Description==== Ternary operation on three nrrds or constants. Can have one, two, or three nrrds, but not zero. Operator: Binary operator. Possibilities include: +, x, : sum or product of three values min, max : minimum, maximum clamp : second value is clamped to range between the first and the third ifelse : if 1st value non-zero, then 2nd value, else 3rd value lerp : linear interpolation between the 2nd and 3rd values, as the 1st value varies between 0.0 and 1.0, respectively exists : if the first value exists, use the second value, otherwise use the third in_op : 1 iff second value is is greater than first and less than the second second, 0 otherwise in_cl : 1 iff second value is greater than or equal to the first and less than or equal to second, 0 otherwise Float Input 1: This value is the first float value and will only be used if the first nrrd port isn't connected. Float Input 2: This value is the second float value and will only be used if the second nrrd port isn't connected. Float Input 3: This value is the third float value and will only be used if the third nrrd port isn't connected. Type : type to convert all input nrrds to prior to doing the operation. To leave it unchanged, check the 'Same as input type' checkbutton. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle 0 1539 1684 2006-11-01T04:19:01Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a bundle from disk. ====Detailed Description==== This module reads a bundle from disk. A bundle file has a .bdl extension and can be written with the BundleWriter module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it as one file. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuAxdelete 0 1540 3679 2006-11-01T04:19:01Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuAxdelete'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Remove one or more singleton axes from a nrrd. Singleton axes have only a single sample along them. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted downwards as needed. ====Detailed Description==== Remove one or more singleton axes from a nrrd. Singleton axes have only a single sample along them. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted downwards as needed. Axis: indicates the axis at which to delete the stub axis and should be an integer. If you give -1 as the axis, this will do a matlab-style squeeze, in which any and all singleton axes are removed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuAxinfo 0 1541 3680 2006-11-01T04:19:07Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuAxinfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Modify attributes of a nrrd for a given axis. The only attributes which are set are the label, kind, minimum and maximum values, spacing, and spaceDirection. ====Detailed Description==== Modify attributes of a nrrd for a given axis. The only attributes which are set are the label, kind, minimum and maximum values, spacing, and spaceDirection. The values given in the UI will be set to be the corresponding values of the new nrrd. In order for a given field to be set in the output nrrd, check the box next to the field. NOTE: If the min, max, and spacing values are invalid due to the new given values, the max point will be re-calculated using the min, spacing, and number of samples. A NRRD's axis can either define spaceDirection and a spaceOrigin, or min and max points with spacing -- but not both. Therefore if the input NRRD has min, max, or spacing defined, you cannot set the spaceDirection vector. Or if the spaceDirection vector is set, you cannot set the min, max, or spacing. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap 0 1542 3681 2006-11-01T04:19:07Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadColorMap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ColorMap Read a persistent colormap from a file on disk. ====Detailed Description==== A ColorMap maps scalar values to color values.Upon opening, the The ReadColorMap GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The current directory defaults to only show files with an .cmap extension which helps the user determine the difference between ColorMaps and other files. However, the ReadColorMap can read-in a file with any extension so long as the data has the correct format. If the user attempts to read-in a file that is other than a SCIRun supported ColorMap, or uses an incorrect file format, an error message appears in the Error frame within the SCIRun enrvironment. Clicking the OK button will load the file and dismiss the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2 0 1543 3682 2006-11-01T04:19:11Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadColorMap2'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ColorMap2 Read a persistent 2d colormap from a file on disk. ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuAxinsert 0 1544 3683 2006-11-01T04:19:12Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuAxinsert'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Add a stub (length 1) axis to a nrrd. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted upwards as needed. ====Detailed Description==== Add a stub (length 1) axis to a nrrd. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted upwards as needed. Axis: indicates the axis at which to insert the new axis and should be an integer. Label: is the string label to associate with the new axis. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField 0 1545 3684 2006-11-01T04:19:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Alexei Samsonov :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ====Detailed Description==== Upon opening, the ReadField GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The current directory defaults to only show files with an .fld extension which helps the user determine the difference between Fields and other files. However, the ReadField can read-in a file with any extension so long as the data has the correct format. If the user attempts to read-in a file that is other than a SCIRun supported Field, or uses an incorrect file format, an error message appears in the Error frame within the SCIRun enrvironment. Clicking the OK button will load the file and dismiss the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuAxmerge 0 1546 3685 2006-11-01T04:19:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuAxmerge'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Merge two adjacent axes into one. A more general version of unu axdelete. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted downwards as needed. ====Detailed Description==== Merge two adjacent axes into one. A more general version of unu axdelete. The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted downwards as needed. Axis: One or more integers separated by white space. Each axis index identified is the lower of the pair of axes that will be merged. Saying axis 2 means to merge axis 2 and axis 3 into axis 2. If multiple merges are to be done, the indices listed here are for the axes prior to any merging. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix 0 1547 3686 2006-11-01T04:19:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ====Detailed Description==== Upon opening, the The ReadMatrix GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The current directory defaults to only show files with an .mat extension which helps the user determine the difference between matrix files and other files. However, the ReadMatrix can read-in a file with any extension so long as the data has the correct format. If the user attempts to read-in a file that is other than a SCIRun supported Matrix, or uses an incorrect file format, an error message appears in the Error frame within the SCIRun enrvironment. Clicking the OK button will load the file and dismiss the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuAxsplit 0 1548 3687 2006-11-01T04:19:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuAxsplit'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Split one axis into two axes. More general version of unu axinsert, since a given axis can be split into fast and slow axes of arbitrary size, as long as the product of the fast and slow sizes is the same as the original size. ====Detailed Description==== Split one axis into two axes. More general version of unu axinsert, since a given axis can be split into fast and slow axes of arbitrary size, as long as the product of the fast and slow sizes is the same as the original size. Axis: specify the axis to split at. This value should be an integer. Fast Axis Size: specify the fast axis size to produce when splitting. Slow Axis Size: specify the slow axis size to produce when splitting. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuCCadj 0 1549 3688 2006-11-01T04:19:27Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuCCadj'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Form adjecency matrix of connected components. This operates on the output of ccfind. Output is unsigned char array containing 1 at locations (I,J) and (J,I) if CCs with ids I and J are adjacent, according to the chosen style of adjacency. ====Detailed Description==== Form adjecency matrix of connected components. This operates on the output of ccfind. Output is unsigned char array containing 1 at locations (I,J) and (J,I) if CCs with ids I and J are adjacent, according to the chosen style of adjacency. Connectivity : indicates what kind of connectivity to use, or the number of coordinates that vary in order to traverse the neighborhood of a given sample. In 2D: 1: 4-connected, 2: 8-connected. This value should be represented by an integer. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath 0 1550 3689 2006-11-01T04:19:27Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReadPath'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Dave Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ReadPath module reads a persistent camera path from a file. ====Detailed Description==== Upon opening, the The ReadPath GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The current directory defaults to only show files with an .path extension which helps the user determine the difference between Paths and other files. However, the ReadPath can read-in a file with any extension so long as the data has the correct format. If the user attempts to read-in a file that is other than a Path, or uses an incorrect file format, an error message appears in the Error frame within the SCIRun enrvironment. Clicking the OK button will load the file and dismiss the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo 0 1111 3250 1573 2006-11-01T04:19:32Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportBundleInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module lists all the objects stored in a bundle. ====Detailed Description==== This module lists all the objects stored in a bundle. The names of all the objects are listed as well their types. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuCCfind 0 1551 3690 2006-11-01T04:19:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuCCfind'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Find connected components (CCs). This works on 1-byte and 2-byte integral values, as well as 4-byte ints. ====Detailed Description==== Find connected components (CCs). This works on 1-byte and 2-byte integral values, as well as 4-byte ints. Type: type to use for output, to store the CC ID values. If Use smallest for output type is checked, the type used will be the smallest of uchar, ushort, or int, that can represent all the CC ID values. Using this option allows one to specify the integral type to be used. Connectivity : indicates what kind of connectivity to use, or the number of coordinates that vary in order to traverse the neighborhood of a given sample. In 2D: 1: 4-connected, 2: 8-connected. This value should be represented by an integer. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuCCmerge 0 1552 3691 2006-11-01T04:19:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuCCmerge'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Merge CCs with their neighbors, under various contraints. This operates on the output of "ccfind". Merging of a CC is always done into its largest neighbor. Whether or not to merge can be constrained by one or more of: CC size (-s), original CC value being brighter or darker (-d), and number of neighbors (-n). ====Detailed Description==== >Merge CCs with their neighbors, under various contraints. This operates on the output of "ccfind". Merging of a CC is always done into its largest neighbor. Whether or not to merge can be constrained by one or more of: CC size (-s), original CC value being brighter or darker (-d), and number of neighbors (-n). Value Driven Merging : do value-driven merging. Options include dark islands get merged with bright surrounds, bright surrounds get merged into dark islands, or the default which indicates that merging can go either way. Max Size : a cap on the CC size that will be absorbed into its surround. CCs larger than this are deemed too significant to mess with. Or, a value of 0 removes any such restriction on merging. Max Neighbors : a cap on the number of neighbors that a CC may have if it is to be be merged. A value of 1 allows only islands to be merged, a value of 2 does merging with bigger of two neighbors, etc, while a value of 0 says that number of neighbors is no constraint. Connectivity : what kind of connectivity to use: the number of coordinates that vary in order to traverse the neighborhood of a given sample. In 2D: 1 : 4-connected, 2 : 8-connected ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit 0 1553 3692 2006-11-01T04:19:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportColumnMatrixMisfit'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Compute and visualize error between two vectors. ====Detailed Description==== Compute and visualize error between two vectors. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuCCsettle 0 1554 3693 2006-11-01T04:19:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuCCsettle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Remap CC values down to lowest contiguous values. ====Detailed Description==== Remap CC values down to lowest contiguous values. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures 0 1555 3694 2006-11-01T04:19:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportFieldGeometryMeasures'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ====Detailed Description==== ReportFieldGeometryMeasures outputs a NxM matrix filled with values associated with the input mesh measures at selected mesh locations. First the user selects the measues location in the top half of the UI. The number of measure locations equals the number of rows (N) in the output matrix. Then the user selects what measures are sampled at each location in the bottom half of the UI. The number of measures selected equals the number of columns (M) in the output matrix. Description of Measures: X position - The X coordinate of the center of the measure location. Y position - The Z coordinate of the center of the measure location. Z position - The Z coordinate of the center of the measure location. Index - The index used by the code to reference the measure location. Valence - The # of similar measure locations that share a connection with the measure location. This varies by mesh and is not defned in all circumstances and thus equals 0 in these cases. Size - The Euclidean Volume of the measure element. Ex: length for edges or 0.0 for points. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuCmedian 0 1556 3695 2006-11-01T04:19:48Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuCmedian'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Cheap histogram-based median filtering ====Detailed Description==== Cheap histogram-based median filtering. Only works on 1, 2, or 3 dimensional data. The window over which filtering is done is always square, and only a simplistic weighting scheme is available. The filtering works by forming a histogram of the values in the window, and updating it as the window slides through the volume. Because of this histogramming, precision will be lost on anything other than 8-bit data (assuming a sane # bins). Also, this is "cheap" because it doesn't do any filtering on the border (as defined by radius). values at these locations are simply copied from input. The filter is applied as if there were always scalars. For example if you have a Vector set along the first dimension, then your Vectors x component is in the first position, y the second, z the third along the tuple axis. Each component gets the filter applied independently. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo 0 1557 3696 2006-11-01T04:19:49Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportFieldInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ReportFieldInfo is used to view the attributes of fields. ====Detailed Description==== ReportFieldInfo is purely an informational Module. It performs no modification on input data. Upon execution it displays attributes about the input field in the UI. Field Attributes displayed: Name - The Field name. May be blank. Generation - The Field internal object id. Typename - The C++ typename of the input Field Type. Center - The X,Y,Z coordinates of the average center of the nodes in the Field. Size - The X,Y,Z coordinates of the grid-aligned bounding box that encloses the Field. Data min,max - Only valid for scalar type input fields. Prints the respective min and max scalar values of the data associated with the input field. # Nodes - The number of X,Y,Z points in the input field. # Elements - The number of highest dimension elements in the input field. Ex. For a PointCloudField this would equal the number of nodes. For a TetVolField this would equal the number of tetrahedral cells in the input field. Data at - The location of the data values associated with the input field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuConvert 0 1558 3697 2006-11-01T04:19:54Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuConvert'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== Convert nrrd to another type (as if by per-value cast). This does not transform, scale, clamp, or intelligently quantize values; it just copies them from one type to another, which replicates exactly what you'd get in C when you assign from a variable of one type to another, or when you cast to a differet type. See also unu quantize,unu 2op x, and unu 3op clamp. New Type : specify the type to convert to. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo 0 1559 3698 2006-11-01T04:19:54Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportMatrixInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ReportMatrixInfo is used to view the attributes of matrices. ====Detailed Description==== ReportMatrixInfo is purely an informational Module. It performs no modification on input data. Upon execution it displays attributes about the input matrix in the UI. Matrix Attributes displayed: Name - The Matrix name. May be blank. Generation - The Matrix internal object id. Typename - The C++ typename of the input Matrix Type. # Rows - The number of rows in the input matrix. # Columns - The number of columns in the input matrix. # Elements - The size of the matrix. This is Rows x Columns for non sparse matrices. For sparse matrices this is the number of nonzero elements in the array. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures 0 1127 3266 1574 2006-11-01T04:19:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportMeshQualityMeasures'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Jason Shepherd :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Nodal movement to improve mesh quality. ====Detailed Description==== The ReportMeshQualityMeasures module is used to calculate multiple mesh quality metrics and report these metrics to the user. The Sandia National Laboratories VERDICT library (http://cubit.sandia.gov/verdict.html) performs the metric calculations. Metric descriptions are taken from VERDICT as follows (descriptions are by element type.) Description of Tetrahedral Quality Measures Function Name Dimension Full Range Acceptable Range Reference ------------- ---------- -------- --------------- --------- Aspect Ratio Bet L^0 1 to inf 1 to 3 1 Aspect Ratio Gam L^0 1 to inf 1 to 3 1 Element Volume L^3 -inf to +inf None 1 Condition No. L^0 1 to inf 1 to 3 2 Jacobian L^3 -inf to inf None 2 Scaled Jacobian L^0 -1.414 to +1.414 0.5 to +1.414 2 Shape L^0 0 to 1 0.2 to 1 3 Relative Size L^0 0 to 1 0.2 to 1 3 Shape and Size L^0 0 to 1 0.2 to 1 3 Distortion L^2 -1 to 1 0.6 to 1 4 ------------- ---------- -------- -------------- --------- Approximate Tetrahedral Quality Definitions: Aspect Ratio Beta: CR / (3.0 * IR) where CR = circumsphere radius, IR = inscribed sphere radius Aspect Ratio Gamma: Srms**3 / (8.479670*V) where Srms = sqrt(Sum(Si**2)/6), Si = edge length Element Volume: (1/6) * Jacobian at corner node Condition No. Condition number of the Jacobian matrix at any corner Jacobian: Minimum pointwise volume at any corner Scaled Jacobian: Minimum Jacobian divided by the lengths of 3 edge vectors Shape: 3/Mean Ratio of weighted Jacobian matrix Relative Size: Min( J, 1/J ), where J is determinant of weighted Jacobian matrix Shape and Size: Product of Shape and Relative Size Distortion: {min(|J|)/actual volume}*parent volume, parent volume = 1/6 for tet References for Tetrahedral Quality Measures: 1. V. N. Parthasarathy et al, A comparison of tetrahedron quality measures, Finite Elem. Anal. Des., Vol 15(1993), 255-261. 2. P. Knupp, Achieving Finite Element Mesh Quality via Optimization of the Jacobian Matrix Norm and Associated Quantities, Intl. J. Numer. Meth. Engng. 2000, 48:1165-1185. 3. P. Knupp, Algebraic Mesh Quality Metrics for Unstructured Initial Meshes, submitted for publication. 4. SDRC/IDEAS Simulation: Finite Element Modeling--User's Guide Description of Hexahedral Quality Measures Function Name Dimension Full Range Acceptable Range Reference ------------- ---------- ----- --------------- --------- Aspect Ratio L^0 1 to inf 1 to 4 1 Skew L^0 0 to 1 0 to 0.5 1 Taper L^0 0 to +inf 0 to 0.4 1 Element Volume L^3 -inf to +inf None 1 Stretch L^0 0 to 1 0.25 to 1 2 Diagonal Ratio L^0 0 to 1 0.65 to 1 3 Dimension L^1 0 to inf None 1 Condition No. L^0 1 to inf 1 to 8 4 Jacobian L^3 - inf to inf None 4 Scaled Jacobian L^0 -1 to +1 0.5 to 1 4 Shear L^0 0 to 1 0.3 to 1 5 Shape L^0 0 to 1 0.3 to 1 5 Relative Size L^0 0 to 1 0.5 to 1 5 Shear and Size L^0 0 to 1 0.2 to 1 5 Shape and Size L^0 0 to 1 0.2 to 1 5 Distortion L^2 -1 to 1 0.6 to 1 6 ------------- ---------- ----- ---------------- --------- Approximate Hexahedral Quality Definitions: Aspect Ratio: Maximum edge length ratios at hex center. Skew: Maximum |cos A| where A is the angle between edges at hex center. Taper: Maximum ratio of lengths derived from opposite edges. Element Volume: Jacobian at hex center. Stretch: Sqrt(3) * minimum edge length / maximum diagonal length. Diagonal Ratio: Minimum diagonal length / maximum diagonal length. Dimension: Pronto-specific characteristic length for stable time step calculation. Char_length = Volume / 2 grad Volume. Condition No. Maximum condition number of the Jacobian matrix at 8 corners. Jacobian: Minimum pointwise volume of local map at 8 corners and center of hex. Scaled Jacobian: Minimum Jacobian divided by the lengths of the 3 edge vectors. Shear: 3/Mean Ratio of Jacobian Skew matrix Shape: 3/Mean Ratio of weighted Jacobian matrix Relative Size: Min( J, 1/J ), where J is determinant of weighted Jacobian matrix Shear and Size: Product of Shear and Relative Size Shape and Size: Product of Shape and Relative Size Distortion: {min(|J|)/actual volume}*parent volume, parent volume = 8 for hex References for Hexahedral Quality Measures: 1. L.M. Taylor, and D.P. Flanagan, Pronto3D - A Three Dimensional Transient Solid Dynamics Program, SAND87-1912, Sandia National Laboratories, 1989. 2. FIMESH code 3. Unknown 4. P. Knupp, Achieving Finite Element Mesh Quality via Optimization of the Jacobian Matrix Norm and Associated Quantities, Intl. J. Numer. Meth. Engng. 2000, 48:1165-1185. 5. P. Knupp, Algebraic Mesh Quality Metrics for Unstructured Initial Meshes, submitted for publication. 6. SDRC/IDEAS Simulation: Finite Element Modeling--User's Guide Description of Triangular Quality Measures Function Name Dimension Full Range Acceptable Range Reference ------------- ---------- --------- --------------- --------- Element Area L^2 0 to inf None 1 Maximum Angle degrees 60 to 180 60 to 90 1 Minimum Angle degrees 0 to 60 30 to 60 1 Condition No. L^0 1 to inf 1 to 1.3 2 Scaled Jacobian L^0 -1.155 to +1.155 0.5 to 1.155 2 Relative Size L^0 0 to 1 0.25 to 1 3 Shape L^0 0 to 1 0.25 to 1 3 Shape and Size L^0 0 to 1 0.25 to 1 3 Distortion L^2 -1 to 1 0.6 to 1 4 ------------- ---------- -------- --------------- --------- Approximate Triangular Quality Definitions: Element Area: (1/2) * Jacobian at corner node Maximum Angle: Maximum included angle in triangle Minimum Angle: Minimum included angle in triangle Condition No. Condition number of the Jacobian matrix Scaled Jacobian: Minimum Jacobian divided by the lengths of 2 edge vectors Relative Size: Min( J, 1/J ), where J is determinant of weighted Jacobian matrix Shape: 2/Condition number of weighted Jacobian matrix Shape and Size: Product of Shape and Relative Size Distortion: {min(|J|)/actual area}*parent area, parent area = 1/2 for triangular element References for Triangular Quality Measures: 1. Traditional. 2. P. Knupp, Achieving Finite Element Mesh Quality via Optimization of the Jacobian Matrix Norm and Associated Quantities, Intl. J. Numer. Meth. Engng. 2000, 48:1165-1185. 3. P. Knupp, Algebraic Mesh Quality Metrics for Unstructured Initial Meshes, submitted for publication. 4. SDRC/IDEAS Simulation: Finite Element Modeling--User's Guide Description of Quadrilateral Quality Measures Function Name Dimension Full Range Acceptable Range Reference ------------- ---------- ----- --------------- --------- Aspect Ratio L^0 1 to inf 1 to 4 1 Skew L^0 0 to 1 0 to 0.5 1 Taper L^0 0 to inf 0 to 0.7 1 Warpage L^0 0 to 1 0.9 to 1.0 1 Element Area L^2 -inf to +inf None 1 Stretch L^0 0 to 1 0.25 to 1 2 Minimum Angle degrees 0 to 90 45 to 90 3 Maximum Angle degrees 90 to 360 90 to 135 3 Condition No. L^0 1 to inf 1 to 4 4 Jacobian L^2 - inf to inf None 4 Scaled Jacobian L^0 -1 to +1 0.5 to 1 4 Shear L^0 0 to 1 0.3 to 1 5 Shape L^0 0 to 1 0.3 to 1 5 Relative Size L^0 0 to 1 0.3 to 1 5 Shear and Size L^0 0 to 1 0.2 to 1 5 Shape and Size L^0 0 to 1 0.2 to 1 5 Distortion L^2 -1 to 1 0.6 to 1 6 ------------- ---------- ----- -------------- --------- Approximate Quadrilateral Quality Definitions: Aspect Ratio: Maximum edge length ratios at quad center Skew: Maximum |cos A| where A is the angle between edges at quad center Taper: Maximum ratio of lengths derived from opposite edges Warpage: Cosine of Minimum Dihedral Angle formed by Planes Intersecting in Diagonals Element Area: Jacobian at quad center Stretch: Sqrt(2) * minimum edge length / maximum diagonal length Minimum Angle: Smallest included quad angle (degrees). Maximum Angle: Largest included quad angle (degrees). Condition No. Maximum condition number of the Jacobian matrix at 4 corners Jacobian: Minimum pointwise volume of local map at 4 corners and center of quad Scaled Jacobian: Minimum Jacobian divided by the lengths of the 2 edge vectors Shear: 2/Condition number of Jacobian Skew matrix Shape: 2/Condition number of weighted Jacobian matrix Relative Size: Min( J, 1/J ), where J is determinant of weighted Jacobian matrix Shear and Size: Product of Shear and Relative Size Shape and Size: Product of Shape and Relative Size Distortion: {min(|J|)/actual area}*parent area, parent area = 4 for quad References for Quadrilateral Quality Measures: 1. J. Robinson, CRE Method of element testing and the Jacobian shape parameters, Eng. Comput., Vol 4, 1987. 2. FIMESH code. 3. Unknown. 4. P. Knupp, Achieving Finite Element Mesh Quality via Optimization of the Jacobian Matrix Norm and Associated Quantities, Intl. J. Numer. Meth. Engng. 2000, 48:1165-1185. 5. P. Knupp, Algebraic Mesh Quality Metrics for Unstructured Initial Meshes, submitted for publication. 6. SDRC/IDEAS Simulation: Finite Element Modeling--User's Guide ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuCrop 0 1560 3699 2006-11-01T04:19:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuCrop'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): David Weinstein, Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create an output nrrd that is a subsample of the original. ====Detailed Description==== Crop preserves dimension. After first execution, the user interface has correct values, and will perform a crop that produces the identical nrrd as was input. The min and max pairs per axis in the user interface are the sample indecies that you wish to crop. In the case that the min or max are out of bounds, the min and max will reset to the bounding box and the input nrrd will be output. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats 0 1561 3700 2006-11-01T04:20:04Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportScalarFieldStats'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): Kurt Zimmerman :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Analyze data from a scalarfield. ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuDhisto 0 1562 3701 2006-11-01T04:20:04Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuDhisto'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create (PGM) image of 1-D value histogram ====Detailed Description==== Create (PGM) image of 1-D value histogram Height: height of output image (horizontal size is determined by number of bins in input histogram). This value should be an integer. Show log-scaled hisogram: will show the log-scaled histogram with decade tick-marks. Max Number of Hits: constrain the top of the drawn histogram to be at this number of hits. This will either scale the drawn histogram downward or clip its top, depending on whether the given max is higher or lower than the actual maximum bin count. This value should be a double. This value is only used when Use Max Number of Hits is checked. If not checked, the actual maximum bin count is used. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuFlip 0 1563 3702 2006-11-01T04:20:09Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuFlip'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Reverse order of slices along one axis. Special case of unu shuffle. ====Detailed Description==== Reverse order of slices along one axis. Special case of unu shuffle. Axis: the axis to flip along. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo 0 1564 3703 2006-11-01T04:20:09Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportSearchGridInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Output a LatVolField that matches the search grid of the input field. ====Detailed Description==== Output a LatVolField that matches the search grid of the input field. This is primarily useful for debugging search grid related problems. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo 0 1565 3704 2006-11-01T04:20:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ReportStringInfo'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module can be used to display the contents of a string. ====Detailed Description==== This module shows the contents of a string. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuGamma 0 1566 3705 2006-11-01T04:20:16Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuGamma'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Brighten or darken values with a gamma. Just as in xv, the gamma value here is actually the reciprocal of the exponent actually used to transform the values. ====Detailed Description==== Brighten or darken values with a gamma. Just as in xv, the gamma value here is actually the reciprocal of the exponent actually used to transform the values. Gamma: gamma greater than 1.0 brightens, gamma less than 1.0 darkens. Negative gammas invert values (like in xv). This value should be a double. Min: Value at low end of histogram. This value should be a double. To use the lowest value found in the input nrrd, check the Use lowest value of input nrrd as min checkbox. In this case the min value will be disregarded. Max: Value at high end of histogram. This value should be a double. To use the highest value found in the input nrrd, check the Use highest value of input nrrd as max checkbox. In this case the max value will be disregarded. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap 0 1567 3706 2006-11-01T04:20:19Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''RescaleColorMap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ====Detailed Description==== In the GUI, the Auto Scale check box uses the minimum and maximum values found in the ScalarField and maps the ColorMap to that range. The Fixed Scale check box allows the user to manually select for the range of scalar values to which the colors map by adjusting the minimum and maximum values in the appropriate text fields. After changing the range to which the colors map, a new ColorMap passes downstream to the connecting module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuHeq 0 1568 3707 2006-11-01T04:20:20Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuHeq'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform histogram equalization. If this seems to be doing nothing, try increasing the number of histograms bins by an order of magnitude or two (or more). Or, use "unu gamma" to warp the values in the direction you know they need to go. Either of these might work because extremely tall and narrow peaks in the equalization histogram will produce poor results. ====Detailed Description==== Perform histogram equalization. If this seems to be doing nothing, try increasing the number of histograms bins by an order of magnitude or two (or more). Or, use "unu gamma" to warp the values in the direction you know they need to go. Either of these might work because extremely tall and narrow peaks in the equalization histogram will produce poor results. Bins: the number of bins to use in histogram that is created in order to calculate the mapping that achieves the equalization. (int) SBins: the number bins in value histogram to ignore in calculating the mapping. Bins are ignored when they get more hits than other bins, and when the values that fall in them are constant. This is an effective way to prevent large regions of background value from distorting the equalization mapping. default: "0" Amount: extent to which the histogram equalizing mapping should be applied; 0.0: no change, 1.0: full equalization (float); default: "1.0" ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget 0 1569 3708 2006-11-01T04:20:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SelectFieldROIWithBoxWidget'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Select data from a field. ====Detailed Description==== This module allows the user to paint values into a field using a selection widget. The output field contains integer values that correspond to the values selected in the GUI when the painting was done. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuHistax 0 1570 3709 2006-11-01T04:20:25Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuHistax'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Replace each scanline along an axis with its histogram. ====Detailed Description==== Replace each scanline along an axis with its histogram. Axis: axis to histogram along (int). Bins: the number of bins in histogram (int). Type: output type; default: nrrdTypeUChar. Min: Value at low end of histogram and should be a double. To disregard this value and use the lowest value of the input nrrd, check Use lowest value of input nrrd as min. Max: Value at high end of histogram. Should also be a double. To disregard this value and use the highest value of the input nrrd, check Use highest value of input nrrd as max. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues 0 1571 3710 2006-11-01T04:20:30Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SetFieldDataValues'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Examples :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Most basic example manipulating Field data in a SCIRun module. ====Detailed Description==== Get a Field from the input port and change all the scalar values to be an input value from the modules gui, and send the field downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuHisto 0 1572 3711 2006-11-01T04:20:30Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuHisto'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create 1-D histogram of values in a nrrd. ====Detailed Description==== Create 1-D histogram of values in a nrrd. Weight Nrrd: Nrrd indicating how to weigh contributions to joint histogram. By default (not passing in this Nrrd), the increment is one bin count per sample, but by giving a nrrd, the value in the nrrd at the corresponding location will be the bin count increment. Bins: Number of bins in histogram. This should be an integer. Min: Value at low end of histogram. This value should be a double. To disregard this value and use the lowest value of the input nrrd, check Use lowest value of input nrrd as min. Max: Value at high end of histogram. This value should be a double. To disregard this value and use the highest value of the input nrrd, check Use highest value of input nrrd as max. Type: nrrd type to use in output histogram. The default is uint. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty 0 1573 3712 2006-11-01T04:20:35Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SetFieldOrMeshStringProperty'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Set a Property for a Field (or for its mesh). ====Detailed Description==== Set a Property for a Field or Mesh. The property can then be used by downstream modules to determine various things about the field. This module is only used for editing string properties. The properties most commonly set are: name: The name of the field or mesh. units: What units are used when measuring a mesh. Properties are generally used for domain specific information, such that the number used in the base SCIRun module set is quite limited. There are also several properties which are not currenty editable with this module. These include the multi-value properties and properties which are not just strings. These include the minmax property which is a cache of the min and max values for a field, and the conductivities_table which contains conductivities for an indexed field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuImap 0 1574 3713 2006-11-01T04:20:36Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuImap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Map nrrd through *irregular* univariate map (colormap). A map is irregular if the control points are not evenly spaced along the domain, and hence their position must be explicitly represented in the map. As nrrds, these maps are necessarily 2D. Along axis 0, the first value is the location of the control point, and the remaining values give are the range of the map for that control point. The output value(s) is the result of linearly interpolating between value(s) from the map. ====Detailed Description==== Map nrrd through *irregular* univariate map (colormap). A map is irregular if the control points are not evenly spaced along the domain, and hence their position must be explicitly represented in the map. As nrrds, these maps are necessarily 2D. Along axis 0, the first value is the location of the control point, and the remaining values give are the range of the map for that control point. The output value(s) is the result of linearly interpolating between value(s) from the map. Length of accelerator array: length of accelerator array, used to try to speed-up task of finding between which pair of control points a given value lies. Not terribly useful for small maps (about 10 points or less). Use 0 to turn accelorator off. This should be an integer. Rescale to the Map Domain : indicates whether to rescale the input values from the input range to the map domain. Min : Only used when rescaling to the Map Domain. Indicates the low end of input range. Should be a double. To disregard this value and use the lowest value of the input nrrd, check Use lowest value of input nrrd as min. Max : Only used when rescaling to the Map Domain. Indicates the high end of input range. Should be a double. To disregard this value and use the highest value of the input nrrd, check Use highest value of input nrrd as max. Type: Specify the type of the output nrrd. If Use map's type as output type is checked, this value will be disregarded and the map type will be used. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty 0 1575 3714 2006-11-01T04:20:41Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SetFieldProperty'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: MiscField :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Set a Property for a Field. ====Detailed Description==== Set a Property for a Field. The property can then be used by downstream modules to determine various things about the Field. This module is only used for editing string properties. The properties most commonly set are: name: The name of the Field. units: What units are used when measuring a Field. Properties are generally used for domain specific information, such that the number used in the base SCIRun module set is quite limited. There are also several properties which are not currenty editable with this module. These include the multi-value properties and properties which are not just strings. These include the minmax property which is a cache of the min and max values for a Field, and the conductivities_table which contains conductivities for an indexed Field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuInset 0 1576 3715 2006-11-01T04:20:41Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuInset'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Replace a sub-region with a different nrrd. This is functionally the opposite of crop. ====Detailed Description==== Replace a sub-region with a different nrrd. This is functionally the opposite of crop. InputNrrd is the Nrrd to have data inset into. SubRegionNrrd is the Nrrd data to be inset into the InputNrrd. Min should contain the coordinates of where to locate the sub-volume within the InputNrrd. This value must be a list of integers (separated by white space). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuJhisto 0 1577 3716 2006-11-01T04:20:46Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuJhisto'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create joint histogram of two or more nrrds. Each axis of the output corresponds to one of the input nrrds, and each bin in the output records the number of corresponding positions in the inputs with a combination of values represented by the coordinates of the bin. ====Detailed Description==== Create joint histogram of two or more nrrds. Each axis of the output corresponds to one of the input nrrds, and each bin in the output records the number of corresponding positions in the inputs with a combination of values represented by the coordinates of the bin. Bins : bins(i) is the number of bins to use along axis i (of joint histogram), which represents the values of InputNrrd(i). This should be two or more integers separated by white space. Mins : min(i) is the low range of values to be quantized along axis i; use nan to represent lowest value present. This should be two more more double separated by white space (except when using nan). Maxs : max(i) is the high range of values to be quantized along axis i; use nan to represent highest value present. This should be two or more double separated by white space (except when using nan). Type : nrrd type to use for output (the type used to store hit counts in the join histogram). Clamping is done on hit counts so that they never overflow a fixed-point type. WeightNrrd : An optional input indicating how to weigh contributions to joint histogram. If this port is not connected, the increment is one bin count per sample, but by giving a nrrd, the value in the nrrd at the corresponding location will be the bin count increment. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues 0 1578 3717 2006-11-01T04:20:46Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SetTetVolFieldDataValues'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Examples :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Most basic example manipulating Field data in a SCIRun module. ====Detailed Description==== Get a Field from the input port and change all the scalar values to be an input value from the modules gui, and send the field downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuJoin 0 1579 3718 2006-11-01T04:20:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuJoin'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== module interface for nrrdJoin function. ====Detailed Description==== The number of input nrrds vary. Attempt to join all the nrrds along the user specified axis, and output that NrrdData. This module can be used to create sets of data. You can use this module like unu_join <slink text="http://www.cs.utah.edu/~gk/teem/unrrdu/join.html"></slink> ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero 0 1580 3719 2006-11-01T04:20:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SetTetVolFieldDataValuesToZero'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Examples :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Most basic example manipulating Field data in a SCIRun module. ====Detailed Description==== Get a Field from the input port and print out the pointer to the field when executed, zero all the scalar values, and send the field downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuLut 0 1581 3720 2006-11-01T04:20:57Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuLut'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Map nrrd through univariate lookup table (itself represented as a nrrd). The lookup table can be 1D, in which case the output has the same dimension as the input, or 2D, in which case the output has one more dimension than the input, and each value is mapped to a scanline (along axis 0) from the lookup table. ====Detailed Description==== Map nrrd through univariate lookup table (itself represented as a nrrd). The lookup table can be 1D, in which case the output has the same dimension as the input, or 2D, in which case the output has one more dimension than the input, and each value is mapped to a scanline (along axis 0) from the lookup table. Rescale to the Lookup Table : indicates whether to rescale the input values from the input range to the lut domain. The lut domain is either explicitly defined by the axis min,max along axis 0 or 1, or, it is implicitly defined as zero to the length of that axis. Min : Only used when rescaling to Lookup Table. Indicates the low end of input range. Should be a double. To disregard this value and use the lowest value of the input nrrd, check Use lowest value of input nrrd as min. Max : Only used when rescaling to Lookup Table. Indicates the high end of input range. Should be a double. To disregard this value and use the highest value of the input nrrd, check Use highest value of input nrrd as max. Type: Specify the type of the output nrrd. If Use lut's type as output type is checked, this value will be disregarded and the lut type will be used. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget 0 1582 3721 2006-11-01T04:20:57Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ShowAndEditCameraWidget'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Render :Author(s): McKAy Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ? ====Detailed Description==== ? ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuMake 0 1583 3722 2006-11-01T04:21:04Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuMake'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create a nrrd (or nrrd header) from scratch. The data can be in one or more files, or coming from stdin. This provides an easy way of providing the bare minimum information about some data so as to wrap it in a nrrd, either to pass on for further unu processing, or to save to disk. However, with -h , this creates only a detached nrrd header file, without ever reading or writing data. When reading multiple files, each file must contain the data for one slice along the slowest axis. Nearly all the options below refer to the finished nrrd resulting from joining all the slices together, with the exception of -ls , -bs , and -e , which apply to every input slice file. When reading data from many seperate files, it may be easier to put their filenames in a response file; there can be one or more filenames per line of the response file. ====Detailed Description==== Create a nrrd (or nrrd header) from scratch. The data can be in one or more files, or coming from stdin. This provides an easy way of providing the bare minimum information about some data so as to wrap it in a nrrd, either to pass on for further unu processing, or to save to disk. However, with -h , this creates only a detached nrrd header file, without ever reading or writing data. When reading multiple files, each file must contain the data for one slice along the slowest axis. Nearly all the options below refer to the finished nrrd resulting from joining all the slices together, with the exception of -ls , -bs , and -e , which apply to every input slice file. When reading data from many seperate files, it may be easier to put their filenames in a response file; there can be one or more filenames per line of the response file. Write Header : Check to write out a .nhdr file. This file can be specified by browsing to it by clicking the Specify Header File button. Kind : Specify the kind of the first axis. Other axes kinds may be set using MODULE REFERENCE. Size : Specify the sizes separated by a single space. This indicates the number of samples along each axis. Spacing : These float values will indicate the spacing between samples. These should be separated by white space. Labels : Short string labels for each axis. These labels should be separated by a space. Content :Specifies the content string of the nrrd, which is built upon by many nrrd function to record a history of operations. Line Skip : number of ascii lines to skip before reading data Byte Skip : number of bytes to skip (after skipping ascii lines, if any) before reading data. Can use -bs -1 to skip a binary header of unknown length in raw-encoded data. Endoding :output file format. Possibilities include raw, ascii, text, hex. Endianness : Endianness of data; relevent for any data with value representation bigger than 8 bits, with a non-ascii encoding: little for Intel and friends; big for everyone else. Defaults to endianness of this machine. Kev Value Pairs : key/value string pairs to be stored in nrrd. Each key/value pair must be a single string. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap 0 1584 3723 2006-11-01T04:21:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ShowColorMap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Display a ColorMap with index values. ====Detailed Description==== ShowColorMap creates a geometry overlay containing the input colormap and numerical values for it's range. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField 0 1585 3724 2006-11-01T04:21:10Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ShowField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ====Detailed Description==== The field in the first input port holds the mesh that is to be visualized. It only needs to have a mesh, in which case it will be rendered in the default color, which is editable from the UI. If there is a color map attached to port 2, and there is valid data in field, then the data serves as an index into the color map, and the mesh is rendered with appropriate colors. Nodes can be rendered as spheres, axes, or as points. Edges can be rendered as lines or cylinders. All of which have editable size. Faces and text can be rendered or not. If the Orientation Field contains Vector data, then that field is used to draw vectors or oriented glyphs. These can then be colored with the values derived from the first input port. In order for the vectors to be colored properly, the Field and Orientation Field ports must share the same mesh and have data at the same locations. ShowField uses the dynamic loader to compile and load a RenderField Algorithm templated on field type. RenderField does all the rendering work, it loads the scene graph to be rendered. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuMinmax 0 1586 3725 2006-11-01T04:21:10Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuMinmax'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuAtoM :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Print out min max values in one or more nrrds ====Detailed Description==== Print out min and max values in one or more nrrds. Unlike other modules, this doesn't produce a nrrd. It only prints to the UI the min and max values found in the input nrrd(s) ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix 0 1587 3726 2006-11-01T04:21:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ShowMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Display a matrix as geometry. ====Detailed Description==== Display a matrix as geometry. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuPad 0 1588 3727 2006-11-01T04:21:16Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuPad'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): David Weinstein, Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Pad the size of a nrrd along its axes. ====Detailed Description==== The user interface for NrrdPad varies depending upon the dimenion of the input nrrd. For each axis, the user inputs the amount to prepend and append to the axis. NrrdPad outputs a new NrrdData of the specified size. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox 0 1589 3728 2006-11-01T04:21:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ShowMeshBoundingBox'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ====Detailed Description==== ShowMeshBoundingBox queries the generic mesh interface to get the BBox of the Field, and then renders a "cage" of that bounding box. The user specifies nx/ny/nz (number of "bars" in each direction) via text entry in UI. The cage is rendered with red/green/blue lines corresponding to x/y/z. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuPermute 0 1590 3729 2006-11-01T04:21:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuPermute'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): David Weinstein, Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Specify axes to be swapped with eachother ====Detailed Description==== Specify in the UI which axes are to be swapped with eachother. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString 0 1591 1696 2006-11-01T04:21:27Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ShowString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module puts the contents of a string in the viewer window. ====Detailed Description==== This module is able to display multiple lines of information in the viewer window. The module takes a string as input and displays the contents on top of the viewer window. If there are 'newlines' in the string multiple lines are displayed (up to ten lines). In the GUI the font size and color can be altered as well as the location of where to plot the text. This module is intended to provide the user with a means to put any arbitrary information about the data being shown on the display. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuProject 0 1592 3731 2006-11-01T04:21:29Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuProject'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== Collapse scanlines to scalars along some axis. The scanline is reduced to a single scalar by "measuring" all the values in the scanline with some measure. The output nrrd has dimension one less than input; the output type depends on the measure in a non-trivial way. Axis : the axis to project along. This should be an integer. Projection Measure : How to measure a scanline, by summarizing all its values with a single scalar. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices 0 1593 3732 2006-11-01T04:21:33Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ShowTextureSlices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Kurt Zimmerman, Milan Ikits, Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module is used to view slices of data using hardware 3D textures. ====Detailed Description==== The ShowTextureSlices module is used to view slices of data using hardware 3D textures and volume rendering techniques. Under Standard tab, select the X, Y, Z and or View plane and use the "+" and "-" buttons to move the cutting planes. The X, Y, and Z planes can also be moved with a selection widget displayed in the view window. Under Cylindrical tab, select Phi-0, Phi-1, and or Z plane. The "+" and "-" buttons move only the Z plane. The Phi-0 and Phi-1 planes are controlled by entries in the gui. The selection widget in the view window, allows user control of the Z plane and locates the rotation points for Phi-0 and Phi-1 planes. The Interplation Mode allows the user to select between linear interpolation "Interpolate" and nearest neighbor interpolation "Nearest". ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuQuantize 0 1594 3733 2006-11-01T04:21:34Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuQuantize'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): David Weinstein, Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Quantize values into 8, 16, 32 bit values. ====Detailed Description==== Given an input nrrd, output a nrrd that is of type unsigned char, unsigned short, unsigned int (8,16,32 bit) values. The input values are clamped to be in the range of the min and max values specified in the user interface. By default, the min and max of the input will be used. This is indicated by the 'Use lowest/highest value of input as min/max'. To specify different min max, uncheck the above checkbox and input the values in the entry. The current min/max values will be displayed after initial execution. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume 0 1595 3734 2006-11-01T04:21:38Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ShowTextureVolume'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Kurt Zimmerman, Milan Ikits, Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module implements a volume renderer using 3D texture hardware. ====Detailed Description==== The VolumeViewer module implements a volume renderer for SCIRun using 3D texture hardware. The Basic frame allows the selection of standard (Over Operator) or maximum intensity projection (MIP) rendering styles. It also allows for selection of 16 or 32 bit blending modes, however in the future this option will be moved to the visual selection in the MODULE REFERENCE. There is also a selection for Trilinear or Nearest interpolation and a slider for changing the opacity of the volume. Software ColorMap2 Rasterization can be forced on in the unusual event that the default rendering mode does not work. The Sampling frame allows the user to change the sampling rate for interactive and non-interactive use. The number is a multiplier and the formula used to compute the actual number of slices is "rate * sqrt(nx * nx + ny * ny + nz * nz) / sqrt(3.0)", or approximately Sampling Rate slices per texture element. Adaptive sampling refers to the rate at which the volume is sampled while the viewer is being interacted with. The Shading frame is used to control the lighting properties of the volume visualization. The Shading button toggles lighting of the volume's drawn elements and the material is used to modulate the lighting color. This option requires that the texture be built with normals. It also requires a graphics card with fragment shader support. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuResample 0 1596 3735 2006-11-01T04:21:39Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuResample'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): David Weinstein, Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Resample a nrrd to a new size. ====Detailed Description==== Given an input nrrd, and options specified in the UI for NrrdResample, generate a newly sampled nrrd. Size specification can be absolute or based on a multiplier (see UI). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuReshape 0 1597 3736 2006-11-01T04:21:44Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuReshape'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Superficially change dimension and/or axes sizes. The underlying linear ordering of the samples is unchanged, but the reported dimension or axes sizes are changed. Identical in concept to Matlab's reshape command. ====Detailed Description==== New axes sizes should be input as a string of integers separated by white space. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem 0 1598 3737 2006-11-01T04:21:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SolveLinearSystem'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ====Detailed Description==== We support several different iteratve solution techniques within SCIRun, including Jacobi, Conjugate Gradient, and Biconjugate Gradient. As the module iteratively approaches the solution, a graphical user interface depicts the norm of the residual. This feedback allows the user to visually confirm whether a solution is converging, and if so how quickly. It also provides a convenient interface for specifying a convergrence threshold, as the user can interactively raise of lower the maximum acceptable error tolerance in real-time. As the solver is converging, the module can send out the current guess at the solution and continue to iterate; this intermediate result is passed downstream to dependent modules, and can be useful for visualizing how a system is physically converging. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuRmap 0 1599 3738 2006-11-01T04:21:51Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuRmap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Map nrrd through *regular* univariate map (colormap). A map is regular if the control points are evenly spaced along the domain, and hence their position isn't explicitly represented in the map; the axis min, axis max, and number of points determine their location. The map can be a 1D nrrd (for grayscale), in which case the output has the same dimension as the input, or a 2D nrrd (for color), in which case the output has one more dimension than the input. In either case, the output is the result of linearly interpolating between map points, either scalar values (grayscale), or scanlines along axis 0 (color). ====Detailed Description==== Map nrrd through *regular* univariate map (colormap). A map is regular if the control points are evenly spaced along the domain, and hence their position isn't explicitly represented in the map; the axis min, axis max, and number of points determine their location. The map can be a 1D nrrd (for grayscale), in which case the output has the same dimension as the input, or a 2D nrrd (for color), in which case the output has one more dimension than the input. In either case, the output is the result of linearly interpolating between map points, either scalar values (grayscale), or scanlines along axis 0 (color). Rescale to the Map Domain : rescale the input values from the input range to the map domain. The map domain is either explicitly defined by the axis min,max along axis 0 or 1, or, it is implicitly defined as zero to one minus the length of that axis. Min : Only used when rescaling to the Map Domain. Indicates the low end of input range. Should be a double. To disregard this value and use the lowest value of the input nrrd, check Use lowest value of input nrrd as min. Max : Only used when rescaling to the Map Domain. Indicates the high end of input range. Should be a double.To disregard this value and use the highest value of the input nrrd, check Use highest value of input nrrd as max. Type: Specify the type of the output nrrd. If Use map's type as output type is checked, this value will be disregarded and the map type will be used. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuRmapN 0 1600 3739 2006-11-01T04:21:56Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuRmapN'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Map nrrd through *regular* univariate map (colormap). A map is regular if the control points are evenly spaced along the domain, and hence their position isn't explicitly represented in the map; the axis min, axis max, and number of points determine their location. This is an N dimensional mapping in that the fast axis of the nrrd is used to look up coordinates in the N or N+1 map. If the map is of dimension N then it is assumed to be grayscale, otherwise all of the fast axis is treated as a 'color'. This module does no interpolation, rather the nrrd coordinates should exactly match the range of the colormap nrrd dimensions, ie 0-255 for a 1D map of size 256. ====Detailed Description==== Map nrrd through *regular* univariate map of N dimension (colormap). A map is regular if the control points are evenly spaced along the domain, and hence their position isn't explicitly represented in the map; the axis min, axis max, and number of points determine their location. This is an N dimensional mapping in that the fast axis of the nrrd is used to look up coordinates in the N or N+1 map. For instance if the fast axis is size three, then the map should contain 3 dimensions for grayscale or 4 dimensions where the fast dimension is the 'color'. It is byte copied so the 'color' can really be any opaque data type. No interpolation is done by this module. Instead the mapping coordinates should be the exact zero based index into the mapping index that is to be used. For example, given a 1D colormap of size 256, the input nrrd should contain values between 0 and 255. The output nrrd will have the same dimensionality as the input but the data will be replaced with the fast axis data from the input nrrd. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem 0 1601 3740 2006-11-01T04:21:56Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SolveMinNormLeastSqSystem'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes the minimal norm, least squared solution to a nx3 linear system. ====Detailed Description==== This module computes the minimal norm, least squared solution to a nx3 linear system. Given four input ColumnMatrices (v0,v1,v2,b), find the three coefficients (w0,w1,w2) that minimize: | (w0v0 + w1v1 + w2v2) - b |. If more than one minimum exisits (the system is under-determined), choose the coefficients such that (w0,w1,w2) has minimum norm. We output the vector (w0,w1,w2) as a row-matrix, and we ouput the ColumnMatrix (called x), which is: | w0v0 + w1v1 + w2v2 |. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuSave 0 1602 3741 2006-11-01T04:22:02Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuSave'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Write nrrd with specific format, encoding, or endianness. EPS output is a EPSF-3.0 file with BoundingBox and HiResBoundingBox DSC comments, and is suitable for inclusion into other PostScript documents. As a stand-alone file, the image is conveniently centered on an 8.5x11 inch page, with 0.5 inch margins. ====Detailed Description==== Write nrrd with specific format, encoding, or endianness. EPS output is a EPSF-3.0 file with BoundingBox and HiResBoundingBox DSC comments, and is suitable for inclusion into other PostScript documents. As a stand-alone file, the image is conveniently centered on an 8.5x11 inch page, with 0.5 inch margins. Format: output file format. Possibilities include: nrrd : standard nrrd format; png : PNG image; pnm : PNM image; PPM for color, PGM for grayscale; text : plain ASCII text for 1-D and 2-D data; vtk : VTK "STRUCTURED_POINTS" dataset; eps : EPS file Encoding : encoding of data in file. Not all encodings are supported in a given format. Possibilities include: raw : raw encoding; ascii : print data in ascii; hex : two hex digits per byte Endian : Endianness to save data out as; little for Intel and friends; big for everyone else. Defaults to endianness of this machine. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName 0 1603 3742 2006-11-01T04:22:02Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SplitFileName'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module splits a filename in: pathname, filename (base), and extension. ====Detailed Description==== This module splits a filename in: pathname, filename (base), and extension. To get the full filename back, just merge the three resulting strings together. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries 0 1128 3267 1575 2006-11-01T04:22:08Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SwapFieldDataWithMatrixEntries'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Add and remove data from a field. ====Detailed Description==== This module performs two simultanious operations. First the "Input Field" is split into it's mesh part it's data values. The data values are packaged up and passed to the "Output Matrix" port. Second the input field geometry is joined with the data from the Input Matrix, and the result is passed out on the "Output Field" port. If the input matrix is not present, then the second operation is not performed and the Output Field is the same as the Input Field. The format of the "Output Matrix" will be a column matrix if the nput field was of scalar type. It will be an Nx3 matrix if the input field contained vectors. If the field contained tensors it will be Nx9 matrix, where the tensor is flattened out in left to right, top to bottom order. Column 0 contains (0, 0), column 1 contains (0, 1), column 2 contains (0,2), column 3 contains (1, 0), etc. The "Input Matrix" should have the same number of values as the field where the values are to be stored. The type of the Iutput Field is preserved in the Output field as well. So for instance if the input field is a vector field, the Output Field will also be a vector field, and the input matrix should be an Nx3 matrix where N is equal to the number of elements to be filled in. Feb 11, 2004: The module now will try to preserve the scalar type of the field, so if you pass it in a TetVolField of integers and a row matrix, it will return a TetVolField of integers. If the types are not convertible then you will still get a default Vector,Tensor, or double field as appropriate. If you need the old behavior use MODULE REFERENCE to convert the input field to double type before passing it in. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuShuffle 0 1604 3743 2006-11-01T04:22:08Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuShuffle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Permute slices along one axis. ====Detailed Description==== Permute slices along one axis. Slices along one axis are re-arranged as units according to the given permutation (or its inverse). The permutation tells which old slice to put at each new position. For example, the shuffle 0-1, 1-2, 2-0 would be 2 0 1. New Slice Ordering: one or more integers separated by white space indicating the new slice ordering. Use Inverse of Given Permutation checkbox will use the inverse of the permutation given above. Axis indicates the axis to shuffle along. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuSlice 0 1605 3744 2006-11-01T04:22:14Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuSlice'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== Slice at a position along an axis. Output nrrd dimension is one less than input nrrd dimension. Per-axis information is preserved. Axis : the axis to slice along, integer. Position : the position to slice at, integer. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry 0 1606 3745 2006-11-01T04:22:18Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''SynchronizeGeometry'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Render :Author(s): Kai Li :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Create a barrier to synchronize a set of geometry streams. ====Detailed Description==== Unlike the other modules in SCIRun, the Viewer module is asynchronous. That is, ViewWindows redraw as soon as any Geometry is added (or deleted) through any Viewer port. This is typically the desired behavior, as it keeps the visualizations optimally interactive. However, this is not desirable when creating animations, since a new animation frame is generated each time there is a redraw. On the contrary, when creating animations, users typically want only a single redraw per time-step, and that redraw should occur only when all of the scene geometry has been updated. The SynchronizeGeoemtry module provides precisely this mechanism. All of the Geometry that the user wishes to change synchronously with each frame of the animation (e.g. updated isosurfaces, streamlines, psuedo-colored surface potential maps, etc) are passed through the SynchronizeGeometry module before being passed into the Viewer. As updated Geometries are sent to SynchronizeGeometry, it stores them in a buffer until all of the inputs have been received; it then sends them to the Viewer as a single atomic group, which results in a single redraw event (and thus a single new frame for the animation). A geometry stream is composed of multiple geometry samples. Each geometry sample is created by calling GeometryOPort:: delObj() and/or GeometryOPort::addObj() one or more times. All geometry samples with the same virtual sequence number in differenct streams must reach the barrier before they can all proceed. The boundary of geometry samples is the GeometryFlush or GeometryFlushViews message, which is sent out explicitly by calling functions like GeometryOPort:: flushViews(), or implicitly by SCIRun after you did some geometry operations (delete or add) in Module::execute() but did not call any flush messages. With a checkbox in the control panel, users can dynamically choose whether or not to enforce the barrier. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuSplice 0 1607 3746 2006-11-01T04:22:19Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuSplice'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Replace a slice with a different nrrd. This is functionally the opposite of slice. ====Detailed Description==== Replace a slice with a different nrrd. This is functionally the opposite of slice. The InputNrrd is the nrrd into which the slice will be inserted. The SliceNrrd is the nrrd slice to be inserted into the InputNrrd. The axis indicates the axis to splice along and should be an integer. The position indicates the position to splice at. It must be an integer. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:Teem:UnuSwap 0 1608 3747 2006-11-01T04:22:26Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuSwap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interchange scan-line ordering of two axes. Special case of unu permute. ====Detailed Description==== Interchange scan-line ordering of two axes. Special case of unu permute. Axis A and Axis B should be integer values representing the two axes to be switched. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls 0 1609 3748 2006-11-01T04:22:26Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TimeControls'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Time :Author(s): Martin Cole :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Global time controls. ====Detailed Description==== Allows downstream modules the ability to synchronize itself with a global notion of time. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction 0 1610 3749 2006-11-01T04:22:32Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TransformMeshWithFunction'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform a specified functional transform on all of the points in a field. ====Detailed Description==== Compute the specified function on each point in the input field. The mesh transform is specified in the GUI as the body of a C++ function. The input values to the function is 'p'. No value is returned, rather set the 'result' variable to the return point. For example, "result = Point(p.x() + 5, p.y(), p.z());" would return a new field translated by 5 in the X direction. This module does not work on the mesh types that do not contain any implicit points. This includes LatVolMesh, ImageMesh, and ScanlineMesh. The function will not compile but give an error about set_point being undefined. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:UnuUnquantize 0 1611 3750 2006-11-01T04:22:32Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnuUnquantize'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: UnuNtoZ :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Recover floating point values from quantized data. ====Detailed Description==== Recover floating point values from quantized data. InputNrrd - Nrrd to unquantize. OutputNrrd - Unquantized output Nrrd. Min = Lowest value prior to quantization. If Use Input's Min is checked, use the InputNrrd's oldMin if it exists, otherwise 0.0 (double). Max = Highest value prior to quantization. If Use Input's Max is checked, use the the InputNrrd's oldMax if it exists, otherwise 1.0 (double). Checkbox "Output as type double" should be checked if the user wishes to use double for output type, instead of float. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform 0 1612 3751 2006-11-01T04:22:37Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TransformMeshWithTransform'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Non-interactive geometric transform of a field. ====Detailed Description==== This module is used to non-interactively transform the geometry of a field. The transform is passed in to the "Transform Matrix" port as a 4x4 matrix. There is no GUI for this module. The transform is generally computed by a different module, such as MODULE REFERENCE. For interactive geometry transforms use the MODULE REFERENCE module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:Teem:WriteNrrd 0 1613 3752 2006-11-01T04:22:37Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] :Catagory: DataIO :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Output the NrrdData object via Pio. ====Detailed Description==== Save a serialized NrrdData object, which in turn saves the nrrd file that it wraps. So the end result is two saved files. Note that these files live side by side, the NrrdData will not load properly if they are moved, as it holds the full path to the nrrd it wraps. The .nrrd file can of course be relocated on its own, and used as any other nrrd independently from the NrrdData (.nd) file. To save out just a nrrd or some other format, use MODULE REFERENCE. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Teem|Teem]] CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh 0 1614 3753 2006-11-01T04:22:46Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''TransformPlanarMesh'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeMesh :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Non-interactive geometric transform of a field. ====Detailed Description==== This module is used to non-interactively transform the geometry of a field. The transform is passed in to the "Transform Matrix" port as a 4x4 matrix. There is no GUI for this module. The transform is generally computed by a different module, such as MODULE REFERENCE. For interactive geometry transforms use the MODULE REFERENCE module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices 0 1616 3755 2006-11-01T04:22:52Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ViewAndEditSlices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Render :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ====Detailed Description==== The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph 0 1617 3756 2006-11-01T04:22:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ViewGraph'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Render :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Renders input Nx2 matrices in a 2D graph ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene 0 1618 3757 2006-11-01T04:23:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ViewScene'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Render :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ====Detailed Description==== Autoview restores the display back to a default condition. This is very useful when objects disappear from the view window due to a combination of settings. Set Home View captures the setting of the current view so you can return to it later by clicking the "Go home" button. Go home restores the current home view. Views lists a number of standard viewing angles and orientations. The view directions align with the Cartesian axes of the objects. The ``Up vector'' choice sets the orientation of the objects when viewed along the selected axis. From the ViewScene window, the left corner of the control panel contains performance indicators that document the current rendering speed for the display. More advanced graphics performance results in a higher drawing rate. A small plus sign (``+'') appears in the lower right corner of the ViewScene window. Clicking on the plus sign reveals the extended control panel. For further documentation see <rlink text="../../../doc/User/Guide/usersguide/srug5.html">Visualization with the ViewScene</rlink>. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices 0 1619 3758 2006-11-01T04:23:10Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ViewSlices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Render :Author(s): McKay Davis :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle 0 1620 1687 2006-11-01T04:23:15Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module writes a bundle to disk. ====Detailed Description==== This module writes a bundle to disk. A bundle file has a .bdl extension and can be written with the WriteBundle module and can be read with the BundleReader module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it as one file. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap 0 1621 3760 2006-11-01T04:23:20Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteColorMap'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Save persistent representation of a colormap to a file. ====Detailed Description==== Upon opening, the WriteColorMap GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The user can enter the name of a file that the matrix saves to. The file should have a .cmap extension. The default file name is MyColorMap. The user may choose to save the file in either Binary or ASCII file format. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2 0 1622 3761 2006-11-01T04:23:24Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteColorMap2'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Save persistent representation of a colormap to a file. ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField 0 1623 3762 2006-11-01T04:23:29Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Alexei Samsonov :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Saves persistent field objects received from upstream modules. ====Detailed Description==== Upon opening, the WriteField GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The user can enter the name of a file that the matrix saves to. The file should have a .fld extension. The default file name is MyField. The user may also choose between a Binary or ASCII file format. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix 0 1624 3763 2006-11-01T04:23:34Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WriteMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Steven G. Parker :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The WriteMatrix modules saves a persistent representation of a matrix to disk. ====Detailed Description==== Upon opening, the WriteMatrix GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The user can enter the name of a file that the matrix saves to. The file should have a .mat extension. The default file name is MyMatrix. The user may also choose between a Binary or ASCII file format. The Split check box option splits the reader file and matrix data into two files. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath 0 1625 3764 2006-11-01T04:23:39Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''WritePath'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Dave Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The WritePath module saves persistent representation of a path to a file. ====Detailed Description==== Upon opening, the WritePath GUI defaults to the directory that the user sets for their SCIRUN_DATA environment variable. Otherwise, the GUI will default to the directory where the user's SCIRun executable resides. The user can enter the name of a file that the path saves to. The file should have a .path extension. The default file name is MyCameraPath. The user may also choose between a Binary or ASCII file format. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:CardioWave 0 1626 3765 2006-11-01T04:24:49Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CardioWave Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''ContinuousBiDomain'''=== ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:CBDAddMembrane|CBDAddMembrane]] :This module lets the user add a geometry with a specific model. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:CBDAddReference|CBDAddReference]] :This module defines where the reference electrode is located. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:CBDAddStimulus|CBDAddStimulus]] :This module defines the location of the stimulus electrodes. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:CBDBuildSimulation|CBDBuildSimulation]] :Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:CBDCreateDomain|CBDCreateDomain]] :This module creates the domain for the discrete multidomain computation. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:CBDCreateSimulation|CBDCreateSimulation]] :Bundle all the information needed to build a CardioWave simulation. ==='''DiscreteMultiDomain'''=== ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddDomainElectrodes|DMDAddDomainElectrodes]] :This module defines electrode positions for detailed time recordings. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddMembrane|DMDAddMembrane]] :This module lets the user add a geometry with a specific model. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddMembraneElectrodes|DMDAddMembraneElectrodes]] :This module defines electrode positions for detailed time recordings. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddReference|DMDAddReference]] :This module defines where the reference electrode is located. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddStimulus|DMDAddStimulus]] :This module defines the location of the stimulus electrodes. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddStimulusSeries|DMDAddStimulusSeries]] :This module defines the location of the stimulus electrodes. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDBuildSimulation|DMDBuildSimulation]] :Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDConductionVelocity|DMDConductionVelocity]] :This module computes the conduction velocity. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDCreateDomain|DMDCreateDomain]] :This module creates the domain for the discrete multidomain computation. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:DMDCreateSimulation|DMDCreateSimulation]] :Bundle all the information needed to build a CardioWave simulation. ==='''Model'''=== ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:BuildMembraneTable|BuildMembraneTable]] :Test module. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:BuildStimulusTable|BuildStimulusTable]] :Test module. ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:BuildStimulusTableByElement|BuildStimulusTableByElement]] :Test module. ==='''TissueModel'''=== ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:RegularBundle|RegularBundle]] :This module generates a regular tissue bundle. ==='''Tools'''=== ;[[CIBC:Documentation:SCIRun:Reference:CardioWave:UnpackState|UnpackState]] :Unpack the CardioWave StateVariable vector Q. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDAddMembrane 0 1627 3766 2006-11-01T04:26:40Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDAddMembrane'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module lets the user add a geometry with a specific model. ====Detailed Description==== This module lets the user add a geometry with a specific model. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDAddReference 0 1628 3767 2006-11-01T04:26:44Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDAddReference'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines where the reference electrode is located. ====Detailed Description==== This module defines where the reference electrode is located. This module specifies the area/volume of the module that is set to a certain potential. Depending on the field input the geometry a surface or a volume is set to a certain potential. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDAddStimulus 0 1629 3768 2006-11-01T04:26:49Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDAddStimulus'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines the location of the stimulus electrodes. ====Detailed Description==== This module defines the location of the stimulus electrodes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDCreateDomain 0 1630 3769 2006-11-01T04:26:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDCreateDomain'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates the domain for the discrete multidomain computation. ====Detailed Description==== This module creates the domain for the discrete multidomain computation. The module needs two input fields named Conductivity and ElementType. The field Conductivty describes the conductivity throughout the domain and needs to have the mesh as ElementType which describes the layout of the domains. ElementType contains integer values and each domain is defined as the elements with the same the value in elementtype. Before one can use the field it is good to split the the field into regions that connect elements of the same type, but do not connect elements from different domains. Use the module SplitFieldByElementData to split the field properly. All other inputs are optional: ConductivityTable specifies the conductivies in case the Conductivity field is indexed into a table. One can use the BioPSE definitions here as well and hence this field is optional and not needed if the field already has a conductivity table. GeomToComp and CompToGeom specify the geometrical mesh to comptutational grid mapping. In theory only on of these needs to be computed as the other one will be automatically generated. However if one has both tables it is more efficient to supply both. Note that the LinkFieldBoundary and LinkFieldBoundaryByElement modules already assign these properties to the fields. Use these inputs only if you want to do any manually collapsing of nodes into one computational node. The last input MembraneLink is mapping matrix that contains information on whether Membranes need to be linked over the boundary. This mapping matrix is automatically generated by LinkFieldBoundaryByElement. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDGenerateSimulation 0 1631 3770 2006-11-01T04:26:57Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDGenerateSimulation'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ====Detailed Description==== Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDSetupSimulation 0 1632 3771 2006-11-01T04:27:01Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDSetupSimulation'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Bundle all the information needed to build a CardioWave simulation. ====Detailed Description==== Bundle all the information needed to build a CardioWave simulation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CreateRegularBundle 0 1633 3772 2006-11-01T04:27:05Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CreateRegularBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: TissueModel :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module generates a regular tissue bundle. ====Detailed Description==== This module generates a regular tissue bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddDomainElectrodes 0 1634 3773 2006-11-01T04:27:10Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddDomainElectrodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines electrode positions for detailed time recordings. ====Detailed Description==== This module defines electrode positions for detailed time recordings. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddMembrane 0 1635 3774 2006-11-01T04:27:14Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddMembrane'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module lets the user add a geometry with a specific model. ====Detailed Description==== This module lets the user add a geometry with a specific model. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddMembraneElectrodes 0 1636 3775 2006-11-01T04:27:18Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddMembraneElectrodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines electrode positions for detailed time recordings. ====Detailed Description==== This module defines electrode positions for detailed time recordings. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddReference 0 1637 3776 2006-11-01T04:27:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddReference'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines where the reference electrode is located. ====Detailed Description==== This module defines where the reference electrode is located. This module specifies the area/volume of the module that is set to a certain potential. Depending on the field input the geometry a surface or a volume is set to a certain potential. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface 0 1090 1729 1576 2006-11-01T04:27:24Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''MatlabInterface Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportBundlesToMatlab|ExportBundlesToMatlab]] :The ExportBundlesToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportDatatypesToMatlab|ExportDatatypesToMatlab]] :The ExportDatatypesToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportFieldsToMatlab|ExportFieldsToMatlab]] :The ExportFieldsToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportMatricesToMatlab|ExportMatricesToMatlab]] :The ExportMatricesToMatlab module saves a SCIRun matrix in a MATLAB .mat file ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportNrrdsToMatlab|ExportNrrdsToMatlab]] :The ExportNrrdsToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportBundlesFromMatlab|ImportBundlesFromMatlab]] :The ImportBundlesFromMatlab module reads a matrix from a MATLAB .mat file and exports it as a bundle ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportColorMapsFromMatlab|ImportColorMapsFromMatlab]] :The ImportColorMapsFromMatlab module reads a matrix from a MATLAB file ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportDatatypesFromMatlab|ImportDatatypesFromMatlab]] :The ImportDatatypesFromMatlab module reads SCIRun fields, SCIRun Matrices, and SCIRun Nrrds from a MATLAB file. The module requires that the data in the MATLAB file is formatted according to the guidelines described below. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportFieldsFromMatlab|ImportFieldsFromMatlab]] :The ImportFieldsFromMatlab module reads a SCIRun field from a MATLAB file. The module requires that the data in the MATLAB file is formatted according to the guidelines described below. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportMatricesFromMatlab|ImportMatricesFromMatlab]] :The ImportMatricesFromMatlab module reads a matrix from a MATLAB file ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportNrrdsFromMatlab|ImportNrrdsFromMatlab]] :The ImportNrrdsFromMatlab module reads a matrix from a MATLAB .mat file and exports it as a Nrrd ==='''Interface'''=== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab|InterfaceWithMatlab]] :Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlabViaBundles|InterfaceWithMatlabViaBundles]] :Interactive Matlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. The difference with the normal Matlab module is that this one uses bundles as input and output to allow for a more flexible interface. Since the use of bundles is more complicated, the Matlab module should be used if fields or matrices need to be adjusted. But for more complicated projects, this module allows for more flexibility. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddStimulus 0 1638 3777 2006-11-01T04:27:26Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddStimulus'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines the location of the stimulus electrodes. ====Detailed Description==== This module defines the location of the stimulus electrodes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddStimulusSeries 0 1639 3778 2006-11-01T04:27:31Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddStimulusSeries'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines the location of the stimulus electrodes. ====Detailed Description==== This module defines the location of the stimulus electrodes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDCreateDomain 0 1640 3779 2006-11-01T04:27:35Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDCreateDomain'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates the domain for the discrete multidomain computation. ====Detailed Description==== This module creates the domain for the discrete multidomain computation. The module needs two input fields named Conductivity and ElementType. The field Conductivty describes the conductivity throughout the domain and needs to have the mesh as ElementType which describes the layout of the domains. ElementType contains integer values and each domain is defined as the elements with the same the value in elementtype. Before one can use the field it is good to split the the field into regions that connect elements of the same type, but do not connect elements from different domains. Use the module SplitFieldByElementData to split the field properly. All other inputs are optional: ConductivityTable specifies the conductivies in case the Conductivity field is indexed into a table. One can use the BioPSE definitions here as well and hence this field is optional and not needed if the field already has a conductivity table. GeomToComp and CompToGeom specify the geometrical mesh to comptutational grid mapping. In theory only on of these needs to be computed as the other one will be automatically generated. However if one has both tables it is more efficient to supply both. Note that the LinkFieldBoundary and LinkFieldBoundaryByElement modules already assign these properties to the fields. Use these inputs only if you want to do any manually collapsing of nodes into one computational node. The last input MembraneLink is mapping matrix that contains information on whether Membranes need to be linked over the boundary. This mapping matrix is automatically generated by LinkFieldBoundaryByElement. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDGenerateSimulation 0 1641 3780 2006-11-01T04:27:39Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDGenerateSimulation'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ====Detailed Description==== Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDSetupSimulation 0 1642 3781 2006-11-01T04:27:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDSetupSimulation'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Bundle all the information needed to build a CardioWave simulation. ====Detailed Description==== Bundle all the information needed to build a CardioWave simulation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface|CardioWaveInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:BuildMembraneTable 0 1643 3782 2006-11-01T04:27:48Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildMembraneTable'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: Model :Author(s): Jeroen :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Test module. ====Detailed Description==== Test module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:BuildStimulusTable 0 1644 3783 2006-11-01T04:27:52Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildStimulusTable'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: Model :Author(s): Jeroen :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Test module. ====Detailed Description==== Test module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportBundlesToMatlab 0 1645 1715 2006-11-01T04:27:53Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ExportBundlesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportBundlesToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ====Detailed Description==== ====Module Description==== The ExportBundlesToMatlab module exports SCIRun Bundle objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file. Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:BuildStimulusTableByElement 0 1646 3785 2006-11-01T04:27:56Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''BuildStimulusTableByElement'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: Model :Author(s): Jeroen :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Test module. ====Detailed Description==== Test module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportDatatypesToMatlab 0 1647 1718 2006-11-01T04:27:58Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ExportDatatypesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportDatatypesToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ====Detailed Description==== ====Module Description==== The ExportDatatypesToMatlab module exports SCIRun Field, Matrix, and Nrrd objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. This module combines the functionality of the MatlabFieldsWriter, the MatlabMatricesWriter, and The MatlabNrrdsWriter. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file. Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:CBDAddMembrane 0 1648 3787 2006-11-01T04:28:02Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDAddMembrane'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module lets the user add a geometry with a specific model. ====Detailed Description==== This module lets the user add a geometry with a specific model. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportFieldsToMatlab 0 1649 1719 2006-11-01T04:28:03Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ExportFieldsToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportFieldsToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ====Detailed Description==== ====Module Description==== The ExportFieldsToMatlab module exports SCIRun Field objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. All fields except for Scanline, Images, and LatVols will be stored as structured matrices. Only Scanlines, Images and LatVols have the possiblity to be stored as dense matrices. The format in which the fields are exported is described in the documentation of the MatlabFieldsReader module. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file. Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:CBDAddReference 0 1650 3789 2006-11-01T04:28:06Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDAddReference'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines where the reference electrode is located. ====Detailed Description==== This module defines where the reference electrode is located. This module specifies the area/volume of the module that is set to a certain potential. Depending on the field input the geometry a surface or a volume is set to a certain potential. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportMatricesToMatlab 0 1651 1721 2006-11-01T04:28:07Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ExportMatricesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportMatricesToMatlab module saves a SCIRun matrix in a MATLAB .mat file ====Detailed Description==== ====Module Description==== The ExportMatricesToMatlab module exports SCIRun matrices into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. Each of these matrices can be formatted into different formats. Firstly, the datatype of the matrix can be altered. Since matrices in matlab are able to use multiple dataformats, casting the data within the module may be a convenient way of saving space. Secondly, the module has the option to export the data as a structured matrix. This has the advantage that additional properties can be exported to matlab as well. Currently this feature is only used to export the values stored in the property manager, however future version may export more properties of the SCIRun matrix object. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file. Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportNrrdsToMatlab 0 1653 1722 2006-11-01T04:28:12Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ExportNrrdsToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportNrrdsToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ====Detailed Description==== ====Module Description==== The ExportNrrdsToMatlab module exports SCIRun NRRD objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. Each of these matrices can be formatted into different formats. Firstly, the datatype of the matrix can be altered. Since matrices in matlab are able to use multiple dataformats, casting the data within the module may be a convenient way of saving space. Secondly, the module has the option to export the data as a structured matrix. This has the advantage that additional properties can be exported to matlab as well. Currently this feature is only used to export the values stored in the property manager and the properties stored in the NRRD axis, like units, spacing, etc. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file. Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:CBDAddStimulus 0 1652 3791 2006-11-01T04:28:12Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDAddStimulus'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines the location of the stimulus electrodes. ====Detailed Description==== This module defines the location of the stimulus electrodes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportBundlesFromMatlab 0 1655 1723 2006-11-01T04:28:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportBundlesFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportBundlesFromMatlab module reads a matrix from a MATLAB .mat file and exports it as a bundle ====Detailed Description==== ==== Module Description ==== This module reads a N-dimensional matrix from MATLAB .mat files and exports this matrix as a Bundle object. Currently only files from matlab version 5 and higher are supported by this module. The module reads dense matrices of any of the supported data classes in matlab (short, int, double, etc.). Sparse matrices however are not supported by this module. Use the MODULE REFERENCE module to read sparse matrices. In order to facilitate the selection process the module will list all matrices in the file that are compatible with the SCIRun Bundle class and will select the most obvious one as a default. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the matrix data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the PORT buttons and then select the MATLAB matrix you want to load on that outport. Note that for convenience the first suitable matrix in the file is automatically connected to port 1, when a MATLAB file is opened. Hence, if your file only contains one field, you can skip this step as the matrix will be selected automatically. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:CBDBuildSimulation 0 1654 3794 2006-11-01T04:28:17Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDBuildSimulation'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ====Detailed Description==== Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportColorMapsFromMatlab 0 1657 1724 2006-11-01T04:28:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportColorMapsFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportColorMapsFromMatlab module reads a matrix from a MATLAB file ====Detailed Description==== ====Module description==== ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:CBDCreateDomain 0 1656 3796 2006-11-01T04:28:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDCreateDomain'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates the domain for the discrete multidomain computation. ====Detailed Description==== This module creates the domain for the discrete multidomain computation. The module needs two input fields named Conductivity and ElementType. The field Conductivty describes the conductivity throughout the domain and needs to have the mesh as ElementType which describes the layout of the domains. ElementType contains integer values and each domain is defined as the elements with the same the value in elementtype. Before one can use the field it is good to split the the field into regions that connect elements of the same type, but do not connect elements from different domains. Use the module SplitFieldByElementData to split the field properly. All other inputs are optional: ConductivityTable specifies the conductivies in case the Conductivity field is indexed into a table. One can use the BioPSE definitions here as well and hence this field is optional and not needed if the field already has a conductivity table. GeomToComp and CompToGeom specify the geometrical mesh to comptutational grid mapping. In theory only on of these needs to be computed as the other one will be automatically generated. However if one has both tables it is more efficient to supply both. Note that the LinkFieldBoundary and LinkFieldBoundaryByElement modules already assign these properties to the fields. Use these inputs only if you want to do any manually collapsing of nodes into one computational node. The last input MembraneLink is mapping matrix that contains information on whether Membranes need to be linked over the boundary. This mapping matrix is automatically generated by LinkFieldBoundaryByElement. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportDatatypesFromMatlab 0 1659 1725 2006-11-01T04:28:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportDatatypesFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportDatatypesFromMatlab module reads SCIRun fields, SCIRun Matrices, and SCIRun Nrrds from a MATLAB file. The module requires that the data in the MATLAB file is formatted according to the guidelines described below. ====Detailed Description==== ====Module description==== This module takes a specially prepared MATLAB file and converts it into a SCIRun Field, Matrix, or Nrrd object. Currently only files from matlab version 5 and higher are supported by this module. The GUI of the module lets the user choose one MATLAB file and subsequently displays all the matrices inside the file. Currently the implementation only shows those MATLAB matrices for which a suitable converter exists, the other ones are not shown. Hence, if your MATLAB matrix does not show up in the selection window the module does not know how to translate the that data set into a SCIRun Field object. Since, a MATLAB file can contain multiple MATLAB matrices, the module is equipped with nine output ports. Three for SCIRun Fields, three for SCIRun matrices, and three for SCIRun Nrrds. By selecting the port the module will show which conversion options are available. This module is a combination of the MatlabFieldsReader, the MatlabNrrdsReader and the MatlabMatricesReader and is intended as a way of using one matlab file to specify fields and the accompaning data. Especially since time data cannot yet be stored in a field this module allows the time data to exist as a separate datastream from the same file. This will limit the amount of files that need to be reloaded when all the data is contained in one matlab file. Depending on how the user configures the module, each output port can represent one of the MATLAB matrices in the file. Hence, multiple geometries/fields/matrices/nrrds can be stored in the same MATLAB file. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the geometry/field/matrices/nrrds data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the FIELD/MATRIX/NRRD buttons and then select the MATLAB matrix you want to load on that outport. A FIELD port exports the data as a field, a MATRIX port as a scirun matrix and a NRRD port as a scirun nrrd object. Note that for convenience the first suitable matrix in the file is automatically for the FIELD 1 port. Matrices and nrrds need to be selected before they appear on an output port. ==== Preparing MATLAB files for SCIRun Fields ==== One crucial step for the conversion from MATLAB to SCIRun is a proper preparation of the data files. Since a SCIRun field object is a complex entity, a simple numeric dense matrix is difficult to translate. Hence, it is required that you build a STRUCTURED MATRIX in matlab with some of the fields listed below. Based on the fields that are supplied the data is converted in one of the many types of geometries available in SCIRun. The module will try to match the data you supplied with the closest Field object it finds. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun: Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix >> save mymesh.mat geom Opening the file with the MatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; >> save myfield field This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; >> save myfield2 field ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:CBDCreateSimulation 0 1658 3798 2006-11-01T04:28:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CBDCreateSimulation'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: ContinuousBiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Bundle all the information needed to build a CardioWave simulation. ====Detailed Description==== Bundle all the information needed to build a CardioWave simulation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportFieldsFromMatlab 0 1661 1726 2006-11-01T04:28:34Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportFieldsFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportFieldsFromMatlab module reads a SCIRun field from a MATLAB file. The module requires that the data in the MATLAB file is formatted according to the guidelines described below. ====Detailed Description==== ====Module description==== This module takes a specially prepared MATLAB file and converts it into a SCIRun Field object. Currently only files from matlab version 5 and higher are supported by this module. The GUI of the module lets the user choose one MATLAB file and subsequently displays all the matrices inside the file. Currently the implementation only shows those MATLAB matrices for which a suitable converter exists, the other ones are not shown. Hence, if your MATLAB matrix does not show up in the selection window the module does not know how to translate the that data set into a SCIRun Field object. Since, a MATLAB file can contain multiple MATLAB matrices, the module is equipped with six output ports. Depending on how the user configures the module, each output port can represent one of the MATLAB matrices in the file. Hence, multiple geometries/fields can be stored in the same MATLAB file. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the geometry/field data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the PORT buttons and then select the MATLAB matrix you want to load on that outport. Note that for convenience the first suitable matrix in the file is automatically connected to port 1, when a MATLAB file is opened. Hence, if your file only contains one field, you can skip this step as the matrix will be selected automatically. ==== Preparing MATLAB files for SCIRun Fields ==== One crucial step for the conversion from MATLAB to SCIRun is a proper preparation of the data files. Since a SCIRun field object is a complex entity, a simple numeric dense matrix is difficult to translate. Hence, it is required that you build a STRUCTURED MATRIX in matlab with some of the fields listed below. Based on the fields that are supplied the data is converted in one of the many types of geometries available in SCIRun. The module will try to match the data you supplied with the closest Field object it finds. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun: Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix >> save mymesh.mat geom Opening the file with the ImportFieldsFromMatlab module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; >> save myfield field This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; >> save myfield2 field ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddDomainElectrodes 0 1660 3800 2006-11-01T04:28:34Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddDomainElectrodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines electrode positions for detailed time recordings. ====Detailed Description==== This module defines electrode positions for detailed time recordings. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddMembrane 0 1662 3803 2006-11-01T04:28:39Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddMembrane'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module lets the user add a geometry with a specific model. ====Detailed Description==== This module lets the user add a geometry with a specific model. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportMatricesFromMatlab 0 1663 1727 2006-11-01T04:28:40Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportMatricesFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportMatricesFromMatlab module reads a matrix from a MATLAB file ====Detailed Description==== ====Module description==== This module imports matrices from MATLAB .mat files. Currently only files from matlab version 5 and higher are supported by this module. The module reads both dense and sparse matrices of any of the supported data classes in matlab (short, int, double, etc.). Currently the SCIRun matrix class only supports doubles, hence every matrix is casted into a double matrix. In order to facilitate the selection process the module will list all matrices in the file that are compatible with the SCIRun matrix class and will select the most obvious one as a default. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the matrix data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the PORT buttons and then select the MATLAB matrix you want to load on that outport. Note that for convenience the first suitable matrix in the file is automatically connected to port 1, when a MATLAB file is opened. Hence, if your file only contains one field, you can skip this step as the matrix will be selected automatically. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddMembraneElectrodes 0 1664 3805 2006-11-01T04:28:43Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddMembraneElectrodes'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines electrode positions for detailed time recordings. ====Detailed Description==== This module defines electrode positions for detailed time recordings. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportNrrdsFromMatlab 0 1665 1728 2006-11-01T04:28:44Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''ImportNrrdsFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportNrrdsFromMatlab module reads a matrix from a MATLAB .mat file and exports it as a Nrrd ====Detailed Description==== ==== Module Description ==== This module reads a N-dimensional matrix from MATLAB .mat files and exports this matrix as a Nrrd object. Currently only files from matlab version 5 and higher are supported by this module. The module reads dense matrices of any of the supported data classes in matlab (short, int, double, etc.). Sparse matrices however are not supported by this module. Use the MODULE REFERENCE module to read sparse matrices. In order to facilitate the selection process the module will list all matrices in the file that are compatible with the SCIRun NRRD class and will select the most obvious one as a default. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the matrix data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the PORT buttons and then select the MATLAB matrix you want to load on that outport. Note that for convenience the first suitable matrix in the file is automatically connected to port 1, when a MATLAB file is opened. Hence, if your file only contains one field, you can skip this step as the matrix will be selected automatically. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab 0 1071 1578 1577 2006-11-01T04:28:49Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InterfaceWithMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ====Detailed Description==== ====Overview==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the InterfaceWithMatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the InterfaceWithMatlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each InterfaceWithMatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple InterfaceWithMatlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:Reference_MatlabInterface_GUIpic1.png|The three main panels of the GUI and what they represent]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another InterfaceWithMatlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure CROSS REFERENCE. [[Image:Reference_MatlabInterface_GUIpic2.png|The SCIRun to matlab translation panel]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. This matlabconverter is the same as used by the modules MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to InterfaceWithMatlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:Reference_MatlabInterface_GUIpic3.png|GUI for determining where MATLAB should be run]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple InterfaceWithMatlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:Reference_MatlabInterface_GUIpic4.png|The panel for running code in matlab]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ====Translation of FIELDS==== The following is an incomplete overview of the translation between SCIRun and MATLAB field objects. The following describes how fields are to be prepared in matlab for it to be used in SCIRun. The opposite process will be done for the input ports. Note that there one can specify whether one ones a structured or numerical matlab array. In case of numerical array only the data from the field is taken and the rest is thrown away. In case of a structured matlab array the data is fitted into a structure with the same fields as described below. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". This field can be a number as well, which will describe the basis order of the element. The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun: Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix Opening the file with the InterfaceWithMatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddReference 0 1666 3807 2006-11-01T04:28:49Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddReference'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines where the reference electrode is located. ====Detailed Description==== This module defines where the reference electrode is located. This module specifies the area/volume of the module that is set to a certain potential. Depending on the field input the geometry a surface or a volume is set to a certain potential. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlabViaBundles 0 1668 1732 2006-11-01T04:28:55Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''InterfaceWithMatlabViaBundles'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. The difference with the normal Matlab module is that this one uses bundles as input and output to allow for a more flexible interface. Since the use of bundles is more complicated, the Matlab module should be used if fields or matrices need to be adjusted. But for more complicated projects, this module allows for more flexibility. ====Detailed Description==== ====Overview==== This module is an extension of the Matlab module. Please review the documentation of this module for a more detailed description of the inner workings of the matlab interface. The main difference with the Matlab module is the way data is imported into MATLAB. This module uses the module concepts for transporting data. In short a bundle is a collection of SCIRun objects bundled into one stream. As the number of elements in a stream is only limited by the amount of memory that can be used, far more variables can be transported into and out of the module. However this comes with the price of a less straight forward representation of data in matlab. In this case all input and output matlab arrays are structures whose field can represent any of the SCIRun objects currently supported by the Matlab package. Note the currently colormaps and path streams are not supported, although they can be fit into a bundled stream, it is not available in a matlab representation. Converters for those classes will be implemented if they are needed. The bundle to matlab converter has some specific options as well. For matrices and nrrds the default behaviour is to convert them directly into a numeric dense or sparse matrix and all the other properties of the SCIRun object are stripped away, whereas fields are represented by a sub structure, with fields as defined by the MatlabFieldWriter. The options 'numeric array' and 'struct array' control how matrices and nrrds are converted. In case of 'numeric array' all nrrds and matrices will be dense or sparse matrices and the additional fields within the SCIRun object will be stripped away, such as axis names etc. This is the default behavior. In case of 'struct array' all the SCIRun Matrix and Nrrd objects will be translated into sub structures with all the additional SCIRun data put in the fields of this sub matrix. This module will always convert a field into a structure. The matlab to bundle converter is a little bit more complicated since there are more options for conversion. The first parameter controlling the conversion process is 'prefer matrices' or 'prefer nrrds'. This option controls whether a matrix is converted into a nrrd or a matrix. Of course, some objects like sparse matrices can only be represented by a SCIRun Matrix object and will hence be translated so. The same is true for matrices with a dimension higher than two, these can only become nrrds. For the others there are two representations possible, this option just specifies the preference the user has. Note that matrices and nrrds in the Bundled Stream can be inserted as nrrds and read out matrices. One thing one should keep in mind that in the matlab converter the first dimension of a nrrd is assumed to be the rows space and secondly the column space. Some functions expect the opposite order. Unfortunately the order is not specified in the nrrd object. In case you run into unexpected transposed matrices, use the built in function of the BundleGetMatrix and BundleGetNrrd to do these transpose operations. A second choice is whether the substructure represent bundles or scirun objects like fields, nrrds, and matrices. When a field in matlab is a dense, sparse or a string the conversion is obvious. However when it is a structure it can be split into a sub bundle with all the fields being separate objects or they can represent more complicate objects such as fields. The default option is 'prefer sciobjects', which will first try to see if the fields correspond to any of the object defined in SCIRun. For example when a subarray has a field called 'node' it will be translated into a field. If no suitable conversion can be found it will be translated into a bundle. In case of 'prefer bundles' all substructures will be bundles again. This means sno fields will be generated and the translation will be a bundle with subbundles that contain only nrrds and matrices. ====Overview Matlab/InterfaceWithMatlabViaBundles module mechanism==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddStimulus 0 1667 3808 2006-11-01T04:28:55Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddStimulus'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines the location of the stimulus electrodes. ====Detailed Description==== This module defines the location of the stimulus electrodes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDAddStimulusSeries 0 1669 3810 2006-11-01T04:28:59Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDAddStimulusSeries'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module defines the location of the stimulus electrodes. ====Detailed Description==== This module defines the location of the stimulus electrodes. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDBuildSimulation 0 1670 3811 2006-11-01T04:29:07Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDBuildSimulation'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ====Detailed Description==== Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDConductionVelocity 0 1671 3812 2006-11-01T04:29:13Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDConductionVelocity'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes the conduction velocity. ====Detailed Description==== This module computes the conduction velocity. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDCreateDomain 0 1672 3813 2006-11-01T04:29:19Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDCreateDomain'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module creates the domain for the discrete multidomain computation. ====Detailed Description==== This module creates the domain for the discrete multidomain computation. The module needs two input fields named Conductivity and ElementType. The field Conductivty describes the conductivity throughout the domain and needs to have the mesh as ElementType which describes the layout of the domains. ElementType contains integer values and each domain is defined as the elements with the same the value in elementtype. Before one can use the field it is good to split the the field into regions that connect elements of the same type, but do not connect elements from different domains. Use the module SplitFieldByElementData to split the field properly. All other inputs are optional: ConductivityTable specifies the conductivies in case the Conductivity field is indexed into a table. One can use the BioPSE definitions here as well and hence this field is optional and not needed if the field already has a conductivity table. GeomToComp and CompToGeom specify the geometrical mesh to comptutational grid mapping. In theory only on of these needs to be computed as the other one will be automatically generated. However if one has both tables it is more efficient to supply both. Note that the LinkFieldBoundary and LinkFieldBoundaryByElement modules already assign these properties to the fields. Use these inputs only if you want to do any manually collapsing of nodes into one computational node. The last input MembraneLink is mapping matrix that contains information on whether Membranes need to be linked over the boundary. This mapping matrix is automatically generated by LinkFieldBoundaryByElement. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:DMDCreateSimulation 0 1673 3814 2006-11-01T04:29:23Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''DMDCreateSimulation'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: DiscreteMultiDomain :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Bundle all the information needed to build a CardioWave simulation. ====Detailed Description==== Bundle all the information needed to build a CardioWave simulation. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:RegularBundle 0 1674 3815 2006-11-01T04:29:28Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''RegularBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: TissueModel :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module generates a regular tissue bundle. ====Detailed Description==== This module generates a regular tissue bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWave:UnpackState 0 1675 3816 2006-11-01T04:29:32Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''UnpackState'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] :Catagory: Tools :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Unpack the CardioWave StateVariable vector Q. ====Detailed Description==== Unpack the CardioWave StateVariable vector Q. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:CardioWave|CardioWave]] CIBC:Documentation:SCIRun:Reference:CardioWaveInterface 0 1676 3817 2006-11-01T04:30:22Z Blackham 44 Automated page entry using MWPush.pl wikitext text/x-wiki =='''CardioWaveInterface Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''ContinuousBiDomain'''=== ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDAddMembrane|CBDAddMembrane]] :This module lets the user add a geometry with a specific model. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDAddReference|CBDAddReference]] :This module defines where the reference electrode is located. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDAddStimulus|CBDAddStimulus]] :This module defines the location of the stimulus electrodes. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDCreateDomain|CBDCreateDomain]] :This module creates the domain for the discrete multidomain computation. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDGenerateSimulation|CBDGenerateSimulation]] :Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CBDSetupSimulation|CBDSetupSimulation]] :Bundle all the information needed to build a CardioWave simulation. ==='''DiscreteMultiDomain'''=== ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddDomainElectrodes|DMDAddDomainElectrodes]] :This module defines electrode positions for detailed time recordings. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddMembrane|DMDAddMembrane]] :This module lets the user add a geometry with a specific model. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddMembraneElectrodes|DMDAddMembraneElectrodes]] :This module defines electrode positions for detailed time recordings. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddReference|DMDAddReference]] :This module defines where the reference electrode is located. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddStimulus|DMDAddStimulus]] :This module defines the location of the stimulus electrodes. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDAddStimulusSeries|DMDAddStimulusSeries]] :This module defines the location of the stimulus electrodes. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDCreateDomain|DMDCreateDomain]] :This module creates the domain for the discrete multidomain computation. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDGenerateSimulation|DMDGenerateSimulation]] :Build a CardioWave Simulation. This module uses the create SimulationBundle and from it creates all the files needed to compile and run a CardioWave simulation. ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:DMDSetupSimulation|DMDSetupSimulation]] :Bundle all the information needed to build a CardioWave simulation. ==='''TissueModel'''=== ;[[CIBC:Documentation:SCIRun:Reference:CardioWaveInterface:CreateRegularBundle|CreateRegularBundle]] :This module generates a regular tissue bundle. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] File:Reference MatlabInterface GUIpic1.png 6 1677 3818 2006-11-01T04:37:21Z Blackham 44 wikitext text/x-wiki File:Reference MatlabInterface GUIpic2.png 6 1678 3819 2006-11-01T04:40:51Z Blackham 44 wikitext text/x-wiki File:Reference MatlabInterface GUIpic3.png 6 1679 3820 2006-11-01T04:42:06Z Blackham 44 wikitext text/x-wiki File:Reference MatlabInterface GUIpic4.png 6 1680 3821 2006-11-01T04:42:19Z Blackham 44 wikitext text/x-wiki CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab 0 1071 1579 1578 2006-11-01T04:49:50Z Blackham 44 wikitext text/x-wiki =='''InterfaceWithMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ====Detailed Description==== ====Overview==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the InterfaceWithMatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the InterfaceWithMatlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each InterfaceWithMatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple InterfaceWithMatlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:Reference_MatlabInterface_GUIpic1.png]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another InterfaceWithMatlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure CROSS REFERENCE. [[Image:Reference_MatlabInterface_GUIpic2.png|The SCIRun to matlab translation panel]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. This matlabconverter is the same as used by the modules MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to InterfaceWithMatlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:Reference_MatlabInterface_GUIpic3.png|GUI for determining where MATLAB should be run]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple InterfaceWithMatlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:Reference_MatlabInterface_GUIpic4.png|The panel for running code in matlab]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ====Translation of FIELDS==== The following is an incomplete overview of the translation between SCIRun and MATLAB field objects. The following describes how fields are to be prepared in matlab for it to be used in SCIRun. The opposite process will be done for the input ports. Note that there one can specify whether one ones a structured or numerical matlab array. In case of numerical array only the data from the field is taken and the rest is thrown away. In case of a structured matlab array the data is fitted into a structure with the same fields as described below. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". This field can be a number as well, which will describe the basis order of the element. The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun: Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix Opening the file with the InterfaceWithMatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] 1730 1579 2006-11-01T04:50:39Z Blackham 44 wikitext text/x-wiki =='''InterfaceWithMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ====Detailed Description==== ====Overview==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the InterfaceWithMatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the InterfaceWithMatlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each InterfaceWithMatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple InterfaceWithMatlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:Reference_MatlabInterface_GUIpic1.png|The three main panels of the GUI and what they represent]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another InterfaceWithMatlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure CROSS REFERENCE. [[Image:Reference_MatlabInterface_GUIpic2.png|The SCIRun to matlab translation panel]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. This matlabconverter is the same as used by the modules MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to InterfaceWithMatlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:Reference_MatlabInterface_GUIpic3.png|GUI for determining where MATLAB should be run]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple InterfaceWithMatlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:Reference_MatlabInterface_GUIpic4.png|The panel for running code in matlab]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ====Translation of FIELDS==== The following is an incomplete overview of the translation between SCIRun and MATLAB field objects. The following describes how fields are to be prepared in matlab for it to be used in SCIRun. The opposite process will be done for the input ports. Note that there one can specify whether one ones a structured or numerical matlab array. In case of numerical array only the data from the field is taken and the rest is thrown away. In case of a structured matlab array the data is fitted into a structure with the same fields as described below. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". This field can be a number as well, which will describe the basis order of the element. The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun: Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix Opening the file with the InterfaceWithMatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Project:NCMIR 0 1061 1581 1580 2006-11-01T19:27:18Z Cates 4 /* Notes */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode, focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === 1614 1581 2006-11-01T19:28:31Z Cates 4 /* Notes */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Data Flow === [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === Ontology-guided Contouring === CIBC:Documentation:SCIRun:DevManual 0 1681 1582 2006-11-01T23:21:11Z Jeroen 19 wikitext text/x-wiki ==SCIRun Developer's GUIDE== *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] 1583 1582 2006-11-01T23:24:28Z Jeroen 19 /* SCIRun Developer's GUIDE */ wikitext text/x-wiki ==SCIRun Developer's GUIDE== '''TABLE OF CONTENTS:''' *[[CIBC:Documentation:SCIRun:DevManual:Introduction|Introduction]] *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] *[[CIBC:Documentation:SCIRun:DevManual:Dataflow|Dataflow]] 1584 1583 2006-11-01T23:28:14Z Jeroen 19 /* SCIRun Developer's GUIDE */ wikitext text/x-wiki ==SCIRun Developer's GUIDE== '''OVERVIEW''' This manual is intended for the developer who is new to the SCIRun framework and who wants to contiribute to the development of the SCIRun framework. '''TABLE OF CONTENTS:''' *[[CIBC:Documentation:SCIRun:DevManual:Introduction|Introduction]] *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] *[[CIBC:Documentation:SCIRun:DevManual:Dataflow|Dataflow]] 1591 1584 2006-11-01T23:30:33Z Jeroen 19 /* SCIRun Developer's GUIDE */ wikitext text/x-wiki ==SCIRun 3.0 Developer's GUIDE== '''OVERVIEW''' This manual is intended for the developer who is new to the SCIRun framework and who wants to contiribute to the development of the SCIRun framework. It features the basic strategies used in managing dataflow environment and an overview of the classes needed to extend the framework. '''TABLE OF CONTENTS:''' *[[CIBC:Documentation:SCIRun:DevManual:Introduction|Introduction]] *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] *[[CIBC:Documentation:SCIRun:DevManual:Dataflow|Dataflow]] 1594 1591 2006-11-02T00:52:48Z Jeroen 19 /* SCIRun 3.0 Developer's GUIDE */ wikitext text/x-wiki ==SCIRun 3.0 Developer's GUIDE== '''OVERVIEW''' This manual is intended for the developer who is new to the SCIRun framework and who wants to contiribute to the development of the SCIRun framework. It features the basic strategies used in managing dataflow environment and an overview of the classes needed to extend the framework. '''TABLE OF CONTENTS:''' *[[CIBC:Documentation:SCIRun:DevManual:Introduction|Introduction]] *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] *[[CIBC:Documentation:SCIRun:DevManual:Dataflow|Dataflow]] *[[CIBC:Documentation:SCIRun:DevManual:DynamicCompilation|Dynamic Compilation]] 1602 1594 2006-11-02T04:18:55Z Jeroen 19 /* SCIRun 3.0 Developer's GUIDE */ wikitext text/x-wiki ==SCIRun 3.0 Developer's GUIDE== '''OVERVIEW''' This manual is intended for the developer who is new to the SCIRun framework and who wants to contiribute to the development of the SCIRun framework. It features the basic strategies used in managing dataflow environment and an overview of the classes needed to extend the framework. '''TABLE OF CONTENTS:''' *[[CIBC:Documentation:SCIRun:DevManual:Introduction|Introduction]] *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] *[[CIBC:Documentation:SCIRun:DevManual:Dataflow|Dataflow]] *[[CIBC:Documentation:SCIRun:DevManual:DynamicCompilation|Dynamic Compilation]] ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] 1604 1602 2006-11-02T05:56:03Z Jeroen 19 /* SCIRun 3.0 Developer's GUIDE */ wikitext text/x-wiki ==SCIRun 3.0 Developer's GUIDE== '''OVERVIEW''' This manual is intended for the developer who is new to the SCIRun framework and who wants to contiribute to the development of the SCIRun framework. It features the basic strategies used in managing dataflow environment and an overview of the classes needed to extend the framework. '''TABLE OF CONTENTS:''' *[[CIBC:Documentation:SCIRun:DevManual:Introduction|Introduction]] *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] *[[CIBC:Documentation:SCIRun:DevManual:Dataflow|Dataflow]] *[[CIBC:Documentation:SCIRun:DevManual:DynamicCompilation|Dynamic Compilation]] *[[CIBC:Documentation:SCIRun:DevManual:InterfaceToTCL|Interface To TCL]] ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] 1605 1604 2006-11-02T06:09:53Z Jeroen 19 /* SCIRun 3.0 Developer's GUIDE */ wikitext text/x-wiki ==SCIRun 3.0 Developer's GUIDE== '''OVERVIEW''' This manual is intended for the developer who is new to the SCIRun framework and who wants to contiribute to the development of the SCIRun framework. It features the basic strategies used in managing dataflow environment and an overview of the classes needed to extend the framework. '''TABLE OF CONTENTS:''' *[[CIBC:Documentation:SCIRun:DevManual:Introduction|Introduction]] *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] *[[CIBC:Documentation:SCIRun:DevManual:Dataflow|Dataflow]] *[[CIBC:Documentation:SCIRun:DevManual:DynamicCompilation|Dynamic Compilation]] *[[CIBC:Documentation:SCIRun:DevManual:InterfaceToTCL|Interface To TCL]] *[[CIBC:Documentation:SCIRun:DevManual:MemoryManagement| Memory Management]] *[[CIBC:Documentation:SCIRun:DevManual:PersistentIO|Persistent IO]] *[[CIBC:Documentation:SCIRun:DevManual:CostumTkWidgets|Custom Tk Widgets]] *[[CIBC:Documentation:SCIRun:DevManual:Utilities|SCIRun Utilities]] *[[CIBC:Documentation:SCIRun:DevManual:Exceptions|SCIRun Exceptions]] *[[CIBC:Documentation:SCIRun:DevManual:WidgetsAndConstraints|3D Widgets and Constraints in SCIRun]] ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] 3823 1605 2006-11-02T06:10:11Z Jeroen 19 /* SCIRun 3.0 Developer's GUIDE */ wikitext text/x-wiki ==SCIRun 3.0 Developer's GUIDE== '''OVERVIEW''' This manual is intended for the developer who is new to the SCIRun framework and who wants to contiribute to the development of the SCIRun framework. It features the basic strategies used in managing dataflow environment and an overview of the classes needed to extend the framework. '''TABLE OF CONTENTS:''' *[[CIBC:Documentation:SCIRun:DevManual:Introduction|Introduction]] *[[CIBC:Documentation:SCIRun:DevManual:CodingStandards|SCIRun Coding standards]] *[[CIBC:Documentation:SCIRun:DevManual:Dataflow|Dataflow]] *[[CIBC:Documentation:SCIRun:DevManual:DynamicCompilation|Dynamic Compilation]] *[[CIBC:Documentation:SCIRun:DevManual:InterfaceToTCL|Interface To TCL]] *[[CIBC:Documentation:SCIRun:DevManual:MemoryManagement| Memory Management]] *[[CIBC:Documentation:SCIRun:DevManual:PersistentIO|Persistent IO]] *[[CIBC:Documentation:SCIRun:DevManual:CostumTkWidgets|Custom Tk Widgets]] *[[CIBC:Documentation:SCIRun:DevManual:Utilities|SCIRun Utilities]] *[[CIBC:Documentation:SCIRun:DevManual:Exceptions|SCIRun Exceptions]] *[[CIBC:Documentation:SCIRun:DevManual:WidgetsAndConstraints|3D Widgets and Constraints in SCIRun]] ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:DevManual:CodingStandards 0 1682 1585 2006-11-01T23:38:15Z Jeroen 19 wikitext text/x-wiki ==Coding standards== *All code and comments are to be written in English. *All files must include appropriate license information. *Use the C++ mode in GNU Emacs and sci-c++-style.el to format code. *Include files in C++ always have the file name extension .h. *Implementation files in C++ always have the file name extension .cc. *Every include file must contain a “guard” that prevents multiple inclusions of the file, for example: #ifndef CORE_GEOMETRY_BBOX_H #define CORE_GEOMETRY_BBOX_H 1 // Code... #endif *The name of the guard should be of the following form: DIR_DIR_FILENAME_H *Use forward declarations wherever possible as opposed to including full definitions for classes, functions, and data: // Class class PointToMe; // Function void my_function(PointToMe &p, PointToMe *ptm); // Data PointToMe *m; *The names of variables and functions will begin with a lowercase letter and include underscore word separators. Names of constants should be in all CAPITALS, with underscore word separation: static int CONSTANT_INT_FIVE = 5; void my_function_name(); int my_local_variable_name = 0; *The names of class member variables are to end with an underscore, “_”: class SomeObject { int count_; }; *The names of abstract data types (eg: Classes), and structs are to begin with an uppercase letter and each new word in the name should also be capitalized. class MyNewClassName { // ... }; *Declare as const a member function that does not change the state of an object. 12. Constants are to be defined using const or enum. Never use #define to create constants. 13. A class which uses new to allocate instances managed by the class must define a copy constructor and an assignment operator. 14. All classes which are used as base classes and which have virtual functions, must define a virtual destructor. 15. Always use delete[] to deallocate arrays. 16. Use exception handling to trap errors (although exceptions should only be used for trapping truly exceptional events). Our exception model includes two levels of exceptions. The top level of exceptions are defined in Classlib/Exceptions.h and are thrown when a class specific exception is not appropriate. The bottom level of exceptions are class specific, defined in the class that throws them, and are subclassed off of the top level exceptions. These class specific exceptions are exceptions that can be caught and handled from the calling function (1 level above the class.) However, if the calling function chooses not to (or cannot) handle the class specific exception, the exception will propagate to the next level at which point it can be trapped and handled in the form of a top level exception. An example of a class specific exception would be a StackUnderFlowException for a stack class. 17. Comments should support generated documentation format. Comments in declarations should be of the form: //! … or /*! … */ These comments will then be visible in our online documentation. Comments in the definition part of your code need not have the !, as all the code is visible online including comments. Create comments that help the reader navigate your code. Comments should help the reader find the area of code he/she is looking for quickly. 18. Do not use identifiers which begin with one ('_') or two ('__') underscores. 19. Never use the $Id or $Log cvs directives. This confuses merging between branches. 20. Do not use #define to obtain more efficient code— use inline functions instead. 21. Avoid the use of numeric values in code; use symbolic values instead. This applies to numeric values that are repeated within the code but represent the same value. Eg: MAX_ARRAY_SIZE = 1024. 22. Do not compare a pointer to NULL or assign NULL to a pointer; use 0 instead. 23. Avoid explicit type conversions (casts). If you must cast use dynamic_cast and insert a comment explaining why. 24. Never convert a constant to a non-constant. Use mutable if necesary. However, be aware of the thread safety problems this causes. 25. Never use goto. 26. Do not use malloc, realloc, or free. 1586 1585 2006-11-01T23:48:15Z Jeroen 19 wikitext text/x-wiki ==Coding standards== ===Required Standars=== *All code and comments are to be written in English. *All files must include appropriate license information. *Use the C++ mode in GNU Emacs and sci-c++-style.el to format code. *Include files in C++ always have the file name extension .h. *Implementation files in C++ always have the file name extension .cc. *Every include file must contain a “guard” that prevents multiple inclusions of the file, for example: #ifndef CORE_GEOMETRY_BBOX_H #define CORE_GEOMETRY_BBOX_H 1 // Code... #endif *The name of the guard should be of the following form: DIR_DIR_FILENAME_H *Use forward declarations wherever possible as opposed to including full definitions for classes, functions, and data: // Class class PointToMe; // Function void my_function(PointToMe &p, PointToMe *ptm); // Data PointToMe *m; *The names of variables and functions will begin with a lowercase letter and include underscore word separators. Names of constants should be in all CAPITALS, with underscore word separation: static int CONSTANT_INT_FIVE = 5; void my_function_name(); int my_local_variable_name = 0; *The names of class member variables are to end with an underscore, “_”: class SomeObject { int count_; }; *The names of abstract data types (eg: Classes), and structs are to begin with an uppercase letter and each new word in the name should also be capitalized. class MyNewClassName { // ... }; *Declare as const a member function that does not change the state of an object. *Constants are to be defined using const or enum. Never use #define to create constants. *A class which uses new to allocate instances managed by the class must define a copy constructor and an assignment operator. *Always use delete[] to deallocate arrays. *Classes should never assume that the input is perfect and a sensible number of savety checks should be in place to detect faulty inputs. *Use exception handling to trap errors (although exceptions should only be used for trapping truly exceptional events). *Our exception model includes two levels of exceptions. The top level of exceptions are defined in Core/Exceptions/Exceptions.h and are thrown when a class specific exception is not appropriate. The bottom level of exceptions are class specific, defined in the class that throws them, and are subclassed off of the top level exceptions. These class specific exceptions are exceptions that can be caught and handled from the calling function (1 level above the class.) However, if the calling function chooses not to (or cannot) handle the class specific exception, the exception will propagate to the next level at which point it can be trapped and handled in the form of a top level exception. An example of a class specific exception would be a StackUnderFlowException for a stack class. *Comments should support generated documentation format. Comments in declarations should be of the form: //! … or /*! … */ These comments will then be visible in our online documentation. Comments in the definition part of your code need not have the !, as all the code is visible online including comments. Create comments that help the reader navigate your code. Comments should help the reader find the area of code he/she is looking for quickly. *Do not use identifiers which begin with one ('_') or two ('__') underscores. *Never use the $Id or $Log cvs directives. This confuses merging between branches. *Do not use #define to obtain more efficient code— use inline functions instead. *Avoid the use of numeric values in code; use symbolic values instead. This applies to numeric values that are repeated within the code but represent the same value. Eg: MAX_ARRAY_SIZE = 1024. *Do not compare a pointer to NULL or assign NULL to a pointer; use 0 instead. *Avoid explicit type conversions (casts). If you must cast use dynamic_cast and insert a comment explaining why. *Never convert a constant to a non-constant. Use mutable if necesary. However, be aware of the thread safety problems this causes. *Never use goto. *Do not use 'malloc', 'realloc', or 'free'. Use 'new' and 'delete' instead 1587 1586 2006-11-01T23:48:44Z Jeroen 19 /* Required Standars */ wikitext text/x-wiki ==Coding standards== ===Required Standards=== *All code and comments are to be written in English. *All files must include appropriate license information. *Use the C++ mode in GNU Emacs and sci-c++-style.el to format code. *Include files in C++ always have the file name extension .h. *Implementation files in C++ always have the file name extension .cc. *Every include file must contain a “guard” that prevents multiple inclusions of the file, for example: #ifndef CORE_GEOMETRY_BBOX_H #define CORE_GEOMETRY_BBOX_H 1 // Code... #endif *The name of the guard should be of the following form: DIR_DIR_FILENAME_H *Use forward declarations wherever possible as opposed to including full definitions for classes, functions, and data: // Class class PointToMe; // Function void my_function(PointToMe &p, PointToMe *ptm); // Data PointToMe *m; *The names of variables and functions will begin with a lowercase letter and include underscore word separators. Names of constants should be in all CAPITALS, with underscore word separation: static int CONSTANT_INT_FIVE = 5; void my_function_name(); int my_local_variable_name = 0; *The names of class member variables are to end with an underscore, “_”: class SomeObject { int count_; }; *The names of abstract data types (eg: Classes), and structs are to begin with an uppercase letter and each new word in the name should also be capitalized. class MyNewClassName { // ... }; *Declare as const a member function that does not change the state of an object. *Constants are to be defined using const or enum. Never use #define to create constants. *A class which uses new to allocate instances managed by the class must define a copy constructor and an assignment operator. *Always use delete[] to deallocate arrays. *Classes should never assume that the input is perfect and a sensible number of savety checks should be in place to detect faulty inputs. *Use exception handling to trap errors (although exceptions should only be used for trapping truly exceptional events). *Our exception model includes two levels of exceptions. The top level of exceptions are defined in Core/Exceptions/Exceptions.h and are thrown when a class specific exception is not appropriate. The bottom level of exceptions are class specific, defined in the class that throws them, and are subclassed off of the top level exceptions. These class specific exceptions are exceptions that can be caught and handled from the calling function (1 level above the class.) However, if the calling function chooses not to (or cannot) handle the class specific exception, the exception will propagate to the next level at which point it can be trapped and handled in the form of a top level exception. An example of a class specific exception would be a StackUnderFlowException for a stack class. *Comments should support generated documentation format. Comments in declarations should be of the form: //! … or /*! … */ These comments will then be visible in our online documentation. Comments in the definition part of your code need not have the !, as all the code is visible online including comments. Create comments that help the reader navigate your code. Comments should help the reader find the area of code he/she is looking for quickly. *Do not use identifiers which begin with one ('_') or two ('__') underscores. *Never use the $Id or $Log cvs directives. This confuses merging between branches. *Do not use #define to obtain more efficient code— use inline functions instead. *Avoid the use of numeric values in code; use symbolic values instead. This applies to numeric values that are repeated within the code but represent the same value. Eg: MAX_ARRAY_SIZE = 1024. *Do not compare a pointer to NULL or assign NULL to a pointer; use 0 instead. *Avoid explicit type conversions (casts). If you must cast use dynamic_cast and insert a comment explaining why. *Never convert a constant to a non-constant. Use mutable if necesary. However, be aware of the thread safety problems this causes. *Never use goto. *Do not use 'malloc', 'realloc', or 'free'. Use 'new' and 'delete' instead 1588 1587 2006-11-02T00:01:56Z Jeroen 19 /* Required Standards */ wikitext text/x-wiki ==Coding standards== ===Required Standards=== *All code and comments are to be written in English. *All files must include appropriate license information. *Use the C++ mode in GNU Emacs and sci-c++-style.el to format code. *Include files in C++ always have the file name extension .h. *Implementation files in C++ always have the file name extension .cc. *Every include file must contain a “guard” that prevents multiple inclusions of the file, for example: #ifndef CORE_GEOMETRY_BBOX_H #define CORE_GEOMETRY_BBOX_H 1 // Code... #endif *The name of the guard should be of the following form: DIR_DIR_FILENAME_H *Use forward declarations wherever possible as opposed to including full definitions for classes, functions, and data: // Class class PointToMe; // Function void my_function(PointToMe &p, PointToMe *ptm); // Data PointToMe *m; *The names of variables and functions will begin with a lowercase letter and include underscore word separators. Names of constants should be in all CAPITALS, with underscore word separation: static int CONSTANT_INT_FIVE = 5; void my_function_name(); int my_local_variable_name = 0; *The names of class member variables are to end with an underscore, “_”: class SomeObject { int count_; }; *The names of abstract data types (eg: Classes), and structs are to begin with an uppercase letter and each new word in the name should also be capitalized. class MyNewClassName { // ... }; *Declare as const a member function that does not change the state of an object. *Constants are to be defined using const or enum. Never use #define to create constants. *A class which uses new to allocate instances managed by the class must define a copy constructor and an assignment operator. *Always use delete[] to deallocate arrays. *Classes should never assume that the input is perfect and a sensible number of savety checks should be in place to detect faulty inputs. *Use exception handling to trap errors (although exceptions should only be used for trapping truly exceptional events). *Our exception model includes two levels of exceptions. The top level of exceptions are defined in Core/Exceptions/Exceptions.h and are thrown when a class specific exception is not appropriate. The bottom level of exceptions are class specific, defined in the class that throws them, and are subclassed off of the top level exceptions. These class specific exceptions are exceptions that can be caught and handled from the calling function (1 level above the class.) However, if the calling function chooses not to (or cannot) handle the class specific exception, the exception will propagate to the next level at which point it can be trapped and handled in the form of a top level exception. An example of a class specific exception would be a StackUnderFlowException for a stack class. *Comments should support generated documentation format. Comments in declarations should be of the form: //! … or /*! … */ These comments will then be visible in our online documentation. Comments in the definition part of your code need not have the !, as all the code is visible online including comments. Create comments that help the reader navigate your code. Comments should help the reader find the area of code he/she is looking for quickly. *Do not use identifiers which begin with one ('_') or two ('__') underscores. *Never use the $Id or $Log cvs directives. This confuses merging between branches. *Do not use #define to obtain more efficient code— use inline functions instead. *Avoid the use of numeric values in code; use symbolic values instead. This applies to numeric values that are repeated within the code but represent the same value. Eg: MAX_ARRAY_SIZE = 1024. *Do not compare a pointer to NULL or assign NULL to a pointer; use 0 instead. *Avoid explicit type conversions (casts). However when a cast is needed, an explicit cast is prefered over having the compiler decide which kind of cast to do. *Never convert a constant to a non-constant. Use mutable if necesary. However, be aware of the thread safety problems this causes. *Never use goto. *Do not use 'malloc', 'realloc', or 'free'. Use 'new' and 'delete' instead ===Recommended coding standards=== *Never use more than 80 columns per line. This way the code is easier to edit in older editors. *An include file for a class should have a file name of the form class name.h. Use uppercase and lowercase letters in the same way as in the source code. *Never include ''/usr/include/*.h'', for example iostream.h in any header file. This causes a huge amount of code to be recursively included and needlessly compiled. Use forward declarations to avoid this. *Group local includes together, then group system includes together. *Avoid global data if possible. *Optimize code only if you know that you have a performance problem. Think twice before you begin. *Always force your compiler to compile with the maximum warning setting, and before you check in code, fix all warnings. *Place machine-dependent code in a special file so that it may be easily located when porting code from one machine to another. *Encapsulate global variables and constants, enumerated types, and typedefs in a class. *Functions in general should not be more than 30 lines long (excluding documentation and indentation). If you find this situation, break the function into several smaller functions. *If a function stores a pointer to an object which is accessed via an argument, let the argument have the type pointer. Use reference arguments in other cases. *When overloading functions, all variations should have the same semantics (be used for the same purpose). *Do not assume that you know how the invocation mechanism for a function is implemented. *Do not assume that an object is initialized in any special order in constructors. *Do not assume that static objects are initialized in any special order. *Use a typedef to simplify program syntax when declaring function pointers, or templated types. *When two operators are opposites (such as == and !=), it is appropriate to define both. *Use constant references ''(const &)'' instead of call-by-value, unless using a pre-defined data type or a pointer. *Minimize the number of temporary objects that are created as return values from functions or as arguments to functions. *Do not write code which is dependent on the lifetime of a temporary object. *Do not assume that the operands in an expression are evaluated in a definite order. Use parenthesis to enforce an order. *Use parentheses to clarify the order of evaluation for operators in expressions. *Avoid using shift operations instead of arithmetic operations. *Use ''std::cout'' instead of ''printf''. *Do not assume that an int and a long have the same size nor that they are always 32 bits in length. *Do not assume that pointers and integers have the same size. *Do not assume that longs, floats, doubles or long doubles may begin at arbitrary addresses. *Always use plain char if 8-bit ASCII is used. Otherwise, use signed char or unsigned char. *Do not assume that a char is signed or unsigned. *Do not depend on underflow or overflow functioning in any special way. 1589 1588 2006-11-02T00:05:57Z Jeroen 19 /* Recommended coding standards */ wikitext text/x-wiki ==Coding standards== ===Required Standards=== *All code and comments are to be written in English. *All files must include appropriate license information. *Use the C++ mode in GNU Emacs and sci-c++-style.el to format code. *Include files in C++ always have the file name extension .h. *Implementation files in C++ always have the file name extension .cc. *Every include file must contain a “guard” that prevents multiple inclusions of the file, for example: #ifndef CORE_GEOMETRY_BBOX_H #define CORE_GEOMETRY_BBOX_H 1 // Code... #endif *The name of the guard should be of the following form: DIR_DIR_FILENAME_H *Use forward declarations wherever possible as opposed to including full definitions for classes, functions, and data: // Class class PointToMe; // Function void my_function(PointToMe &p, PointToMe *ptm); // Data PointToMe *m; *The names of variables and functions will begin with a lowercase letter and include underscore word separators. Names of constants should be in all CAPITALS, with underscore word separation: static int CONSTANT_INT_FIVE = 5; void my_function_name(); int my_local_variable_name = 0; *The names of class member variables are to end with an underscore, “_”: class SomeObject { int count_; }; *The names of abstract data types (eg: Classes), and structs are to begin with an uppercase letter and each new word in the name should also be capitalized. class MyNewClassName { // ... }; *Declare as const a member function that does not change the state of an object. *Constants are to be defined using const or enum. Never use #define to create constants. *A class which uses new to allocate instances managed by the class must define a copy constructor and an assignment operator. *Always use delete[] to deallocate arrays. *Classes should never assume that the input is perfect and a sensible number of savety checks should be in place to detect faulty inputs. *Use exception handling to trap errors (although exceptions should only be used for trapping truly exceptional events). *Our exception model includes two levels of exceptions. The top level of exceptions are defined in Core/Exceptions/Exceptions.h and are thrown when a class specific exception is not appropriate. The bottom level of exceptions are class specific, defined in the class that throws them, and are subclassed off of the top level exceptions. These class specific exceptions are exceptions that can be caught and handled from the calling function (1 level above the class.) However, if the calling function chooses not to (or cannot) handle the class specific exception, the exception will propagate to the next level at which point it can be trapped and handled in the form of a top level exception. An example of a class specific exception would be a StackUnderFlowException for a stack class. *Comments should support generated documentation format. Comments in declarations should be of the form: //! … or /*! … */ These comments will then be visible in our online documentation. Comments in the definition part of your code need not have the !, as all the code is visible online including comments. Create comments that help the reader navigate your code. Comments should help the reader find the area of code he/she is looking for quickly. *Do not use identifiers which begin with one ('_') or two ('__') underscores. *Never use the $Id or $Log cvs directives. This confuses merging between branches. *Do not use #define to obtain more efficient code— use inline functions instead. *Avoid the use of numeric values in code; use symbolic values instead. This applies to numeric values that are repeated within the code but represent the same value. Eg: MAX_ARRAY_SIZE = 1024. *Do not compare a pointer to NULL or assign NULL to a pointer; use 0 instead. *Avoid explicit type conversions (casts). However when a cast is needed, an explicit cast is prefered over having the compiler decide which kind of cast to do. *Never convert a constant to a non-constant. Use mutable if necesary. However, be aware of the thread safety problems this causes. *Never use goto. *Do not use 'malloc', 'realloc', or 'free'. Use 'new' and 'delete' instead ===Recommended coding standards=== *Never use more than 80 columns per line. This way the code is easier to edit in older editors. *An include file for a class should have a file name of the form class name.h. Use uppercase and lowercase letters in the same way as in the source code. *Never include ''/usr/include/*.h'', for example iostream.h in any header file. This causes a huge amount of code to be recursively included and needlessly compiled. Use forward declarations to avoid this. *Group local includes together, then group system includes together. *Avoid global data if possible. *Optimize code only if you know that you have a performance problem. Think twice before you begin. *Always force your compiler to compile with the maximum warning setting, and before you check in code, fix all warnings. *Place machine-dependent code in a special file so that it may be easily located when porting code from one machine to another. *Encapsulate global variables and constants, enumerated types, and typedefs in a class. *Functions in general should not be more than 30 lines long (excluding documentation and indentation). If you find this situation, break the function into several smaller functions. *If a function stores a pointer to an object which is accessed via an argument, let the argument have the type pointer. Use reference arguments in other cases. *When overloading functions, all variations should have the same semantics (be used for the same purpose). *Do not assume that you know how the invocation mechanism for a function is implemented. *Do not assume that an object is initialized in any special order in constructors. *Do not assume that static objects are initialized in any special order. *Use a typedef to simplify program syntax when declaring function pointers, or templated types. *When two operators are opposites (such as == and !=), it is appropriate to define both. *Use constant references ''(const &)'' instead of call-by-value, unless using a pre-defined data type or a pointer. *Minimize the number of temporary objects that are created as return values from functions or as arguments to functions. *Do not write code which is dependent on the lifetime of a temporary object. *Do not assume that the operands in an expression are evaluated in a definite order. Use parenthesis to enforce an order. *Use parentheses to clarify the order of evaluation for operators in expressions. *Avoid using shift operations instead of arithmetic operations. *Use ''std::cout'' instead of ''printf''. *Do not assume that an int and a long have the same size nor that they are always 32 bits in length. *Do not assume that pointers and integers have the same size. *Do not assume that longs, floats, doubles or long doubles may begin at arbitrary addresses. *Always use plain char if 8-bit ASCII is used. Otherwise, use signed char or unsigned char. *Do not assume that a char is signed or unsigned. *Do not depend on underflow or overflow functioning in any special way. *Avoid the use of ''using namespace std;'' (or other namespaces) in include files as they can spill into other files with unintended consequences. *Try to use smart pointers (Handles) to automatically deallocate memory when an object is not needed anymore. 1590 1589 2006-11-02T00:48:41Z Jeroen 19 /* Recommended coding standards */ wikitext text/x-wiki ==Coding standards== ===Required Standards=== *All code and comments are to be written in English. *All files must include appropriate license information. *Use the C++ mode in GNU Emacs and sci-c++-style.el to format code. *Include files in C++ always have the file name extension .h. *Implementation files in C++ always have the file name extension .cc. *Every include file must contain a “guard” that prevents multiple inclusions of the file, for example: #ifndef CORE_GEOMETRY_BBOX_H #define CORE_GEOMETRY_BBOX_H 1 // Code... #endif *The name of the guard should be of the following form: DIR_DIR_FILENAME_H *Use forward declarations wherever possible as opposed to including full definitions for classes, functions, and data: // Class class PointToMe; // Function void my_function(PointToMe &p, PointToMe *ptm); // Data PointToMe *m; *The names of variables and functions will begin with a lowercase letter and include underscore word separators. Names of constants should be in all CAPITALS, with underscore word separation: static int CONSTANT_INT_FIVE = 5; void my_function_name(); int my_local_variable_name = 0; *The names of class member variables are to end with an underscore, “_”: class SomeObject { int count_; }; *The names of abstract data types (eg: Classes), and structs are to begin with an uppercase letter and each new word in the name should also be capitalized. class MyNewClassName { // ... }; *Declare as const a member function that does not change the state of an object. *Constants are to be defined using const or enum. Never use #define to create constants. *A class which uses new to allocate instances managed by the class must define a copy constructor and an assignment operator. *Always use delete[] to deallocate arrays. *Classes should never assume that the input is perfect and a sensible number of savety checks should be in place to detect faulty inputs. *Use exception handling to trap errors (although exceptions should only be used for trapping truly exceptional events). *Our exception model includes two levels of exceptions. The top level of exceptions are defined in Core/Exceptions/Exceptions.h and are thrown when a class specific exception is not appropriate. The bottom level of exceptions are class specific, defined in the class that throws them, and are subclassed off of the top level exceptions. These class specific exceptions are exceptions that can be caught and handled from the calling function (1 level above the class.) However, if the calling function chooses not to (or cannot) handle the class specific exception, the exception will propagate to the next level at which point it can be trapped and handled in the form of a top level exception. An example of a class specific exception would be a StackUnderFlowException for a stack class. *Comments should support generated documentation format. Comments in declarations should be of the form: //! … or /*! … */ These comments will then be visible in our online documentation. Comments in the definition part of your code need not have the !, as all the code is visible online including comments. Create comments that help the reader navigate your code. Comments should help the reader find the area of code he/she is looking for quickly. *Do not use identifiers which begin with one ('_') or two ('__') underscores. *Never use the $Id or $Log cvs directives. This confuses merging between branches. *Do not use #define to obtain more efficient code— use inline functions instead. *Avoid the use of numeric values in code; use symbolic values instead. This applies to numeric values that are repeated within the code but represent the same value. Eg: MAX_ARRAY_SIZE = 1024. *Do not compare a pointer to NULL or assign NULL to a pointer; use 0 instead. *Avoid explicit type conversions (casts). However when a cast is needed, an explicit cast is prefered over having the compiler decide which kind of cast to do. *Never convert a constant to a non-constant. Use mutable if necesary. However, be aware of the thread safety problems this causes. *Never use goto. *Do not use 'malloc', 'realloc', or 'free'. Use 'new' and 'delete' instead ===Recommended coding standards=== *Never use more than 80 columns per line. This way the code is easier to edit in older editors. *An include file for a class should have a file name of the form class name.h. Use uppercase and lowercase letters in the same way as in the source code. *Never include ''/usr/include/*.h'', for example iostream.h in any header file. This causes a huge amount of code to be recursively included and needlessly compiled. Use forward declarations to avoid this. *Group local includes together, then group system includes together. *Avoid global data if possible. *Optimize code only if you know that you have a performance problem. Think twice before you begin. *Always force your compiler to compile with the maximum warning setting, and before you check in code, fix all warnings. *Place machine-dependent code in a special file so that it may be easily located when porting code from one machine to another. *Encapsulate global variables and constants, enumerated types, and typedefs in a class. *Functions in general should not be more than 30 lines long (excluding documentation and indentation). If you find this situation, break the function into several smaller functions. *If a function stores a pointer to an object which is accessed via an argument, let the argument have the type pointer. Use reference arguments in other cases. *When overloading functions, all variations should have the same semantics (be used for the same purpose). *Do not assume that you know how the invocation mechanism for a function is implemented. *Do not assume that an object is initialized in any special order in constructors. *Do not assume that static objects are initialized in any special order. *Use a typedef to simplify program syntax when declaring function pointers, or templated types. *When two operators are opposites (such as == and !=), it is appropriate to define both. *Use constant references ''(const &)'' instead of call-by-value, unless using a pre-defined data type or a pointer. *Minimize the number of temporary objects that are created as return values from functions or as arguments to functions. *Do not write code which is dependent on the lifetime of a temporary object. *Do not assume that the operands in an expression are evaluated in a definite order. Use parenthesis to enforce an order. *Use parentheses to clarify the order of evaluation for operators in expressions. *Avoid using shift operations instead of arithmetic operations. *Use ''std::cout'' instead of ''printf''. *Do not assume that an int and a long have the same size nor that they are always 32 bits in length. *Do not assume that pointers and integers have the same size. *Do not assume that longs, floats, doubles or long doubles may begin at arbitrary addresses. *Always use plain char if 8-bit ASCII is used. Otherwise, use signed char or unsigned char. *Do not assume that a char is signed or unsigned. *Do not depend on underflow or overflow functioning in any special way. *Avoid the use of ''using namespace std;'' (or other namespaces) in include files as they can spill into other files with unintended consequences. *Try to use smart pointers (Handles) to automatically deallocate memory when an object is not needed anymore. *When a function is pure, i.e. it does not modify any of the class members, define it as pure so it can be used safely in multi threaded code. *When variables are being shared between threads always use a mutex for access control. *Use the string class and not C-strings where possible. 1593 1590 2006-11-02T00:50:21Z Jeroen 19 /* Coding standards */ wikitext text/x-wiki ==Coding standards== ===Required Standards=== *All code and comments are to be written in English. *All files must include appropriate license information. *Use the C++ mode in GNU Emacs and sci-c++-style.el to format code. *Include files in C++ always have the file name extension .h. *Implementation files in C++ always have the file name extension .cc. *Every include file must contain a “guard” that prevents multiple inclusions of the file, for example: #ifndef CORE_GEOMETRY_BBOX_H #define CORE_GEOMETRY_BBOX_H 1 // Code... #endif *The name of the guard should be of the following form: DIR_DIR_FILENAME_H *Use forward declarations wherever possible as opposed to including full definitions for classes, functions, and data: // Class class PointToMe; // Function void my_function(PointToMe &p, PointToMe *ptm); // Data PointToMe *m; *The names of variables and functions will begin with a lowercase letter and include underscore word separators. Names of constants should be in all CAPITALS, with underscore word separation: static int CONSTANT_INT_FIVE = 5; void my_function_name(); int my_local_variable_name = 0; *The names of class member variables are to end with an underscore, “_”: class SomeObject { int count_; }; *The names of abstract data types (eg: Classes), and structs are to begin with an uppercase letter and each new word in the name should also be capitalized. class MyNewClassName { // ... }; *Declare as const a member function that does not change the state of an object. *Constants are to be defined using const or enum. Never use #define to create constants. *A class which uses new to allocate instances managed by the class must define a copy constructor and an assignment operator. *Always use delete[] to deallocate arrays. *Classes should never assume that the input is perfect and a sensible number of savety checks should be in place to detect faulty inputs. *Use exception handling to trap errors (although exceptions should only be used for trapping truly exceptional events). *Our exception model includes two levels of exceptions. The top level of exceptions are defined in Core/Exceptions/Exceptions.h and are thrown when a class specific exception is not appropriate. The bottom level of exceptions are class specific, defined in the class that throws them, and are subclassed off of the top level exceptions. These class specific exceptions are exceptions that can be caught and handled from the calling function (1 level above the class.) However, if the calling function chooses not to (or cannot) handle the class specific exception, the exception will propagate to the next level at which point it can be trapped and handled in the form of a top level exception. An example of a class specific exception would be a StackUnderFlowException for a stack class. *Comments should support generated documentation format. Comments in declarations should be of the form: //! … or /*! … */ These comments will then be visible in our online documentation. Comments in the definition part of your code need not have the !, as all the code is visible online including comments. Create comments that help the reader navigate your code. Comments should help the reader find the area of code he/she is looking for quickly. *Do not use identifiers which begin with one ('_') or two ('__') underscores. *Never use the $Id or $Log cvs directives. This confuses merging between branches. *Do not use #define to obtain more efficient code— use inline functions instead. *Avoid the use of numeric values in code; use symbolic values instead. This applies to numeric values that are repeated within the code but represent the same value. Eg: MAX_ARRAY_SIZE = 1024. *Do not compare a pointer to NULL or assign NULL to a pointer; use 0 instead. *Avoid explicit type conversions (casts). However when a cast is needed, an explicit cast is prefered over having the compiler decide which kind of cast to do. *Never convert a constant to a non-constant. Use mutable if necesary. However, be aware of the thread safety problems this causes. *Never use goto. *Do not use 'malloc', 'realloc', or 'free'. Use 'new' and 'delete' instead ===Recommended coding standards=== *Never use more than 80 columns per line. This way the code is easier to edit in older editors. *An include file for a class should have a file name of the form class name.h. Use uppercase and lowercase letters in the same way as in the source code. *Never include ''/usr/include/*.h'', for example iostream.h in any header file. This causes a huge amount of code to be recursively included and needlessly compiled. Use forward declarations to avoid this. *Group local includes together, then group system includes together. *Avoid global data if possible. *Optimize code only if you know that you have a performance problem. Think twice before you begin. *Always force your compiler to compile with the maximum warning setting, and before you check in code, fix all warnings. *Place machine-dependent code in a special file so that it may be easily located when porting code from one machine to another. *Encapsulate global variables and constants, enumerated types, and typedefs in a class. *Functions in general should not be more than 30 lines long (excluding documentation and indentation). If you find this situation, break the function into several smaller functions. *If a function stores a pointer to an object which is accessed via an argument, let the argument have the type pointer. Use reference arguments in other cases. *When overloading functions, all variations should have the same semantics (be used for the same purpose). *Do not assume that you know how the invocation mechanism for a function is implemented. *Do not assume that an object is initialized in any special order in constructors. *Do not assume that static objects are initialized in any special order. *Use a typedef to simplify program syntax when declaring function pointers, or templated types. *When two operators are opposites (such as == and !=), it is appropriate to define both. *Use constant references ''(const &)'' instead of call-by-value, unless using a pre-defined data type or a pointer. *Minimize the number of temporary objects that are created as return values from functions or as arguments to functions. *Do not write code which is dependent on the lifetime of a temporary object. *Do not assume that the operands in an expression are evaluated in a definite order. Use parenthesis to enforce an order. *Use parentheses to clarify the order of evaluation for operators in expressions. *Avoid using shift operations instead of arithmetic operations. *Use ''std::cout'' instead of ''printf''. *Do not assume that an int and a long have the same size nor that they are always 32 bits in length. *Do not assume that pointers and integers have the same size. *Do not assume that longs, floats, doubles or long doubles may begin at arbitrary addresses. *Always use plain char if 8-bit ASCII is used. Otherwise, use signed char or unsigned char. *Do not assume that a char is signed or unsigned. *Do not depend on underflow or overflow functioning in any special way. *Avoid the use of ''using namespace std;'' (or other namespaces) in include files as they can spill into other files with unintended consequences. *Try to use smart pointers (Handles) to automatically deallocate memory when an object is not needed anymore. *When a function is pure, i.e. it does not modify any of the class members, define it as pure so it can be used safely in multi threaded code. *When variables are being shared between threads always use a mutex for access control. *Use the string class and not C-strings where possible. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] 3824 1593 2006-11-02T04:17:15Z Jeroen 19 /* Required Standards */ wikitext text/x-wiki ==Coding standards== ===Required Coding Standards=== *All code and comments are to be written in English. *All files must include appropriate license information. *Use the C++ mode in GNU Emacs and sci-c++-style.el to format code. *Include files in C++ always have the file name extension .h. *Implementation files in C++ always have the file name extension .cc. *Every include file must contain a “guard” that prevents multiple inclusions of the file, for example: #ifndef CORE_GEOMETRY_BBOX_H #define CORE_GEOMETRY_BBOX_H 1 // Code... #endif *The name of the guard should be of the following form: DIR_DIR_FILENAME_H *Use forward declarations wherever possible as opposed to including full definitions for classes, functions, and data: // Class class PointToMe; // Function void my_function(PointToMe &p, PointToMe *ptm); // Data PointToMe *m; *The names of variables and functions will begin with a lowercase letter and include underscore word separators. Names of constants should be in all CAPITALS, with underscore word separation: static int CONSTANT_INT_FIVE = 5; void my_function_name(); int my_local_variable_name = 0; *The names of class member variables are to end with an underscore, “_”: class SomeObject { int count_; }; *The names of abstract data types (eg: Classes), and structs are to begin with an uppercase letter and each new word in the name should also be capitalized. class MyNewClassName { // ... }; *Declare as const a member function that does not change the state of an object. *Constants are to be defined using const or enum. Never use #define to create constants. *A class which uses new to allocate instances managed by the class must define a copy constructor and an assignment operator. *Always use delete[] to deallocate arrays. *Classes should never assume that the input is perfect and a sensible number of savety checks should be in place to detect faulty inputs. *Use exception handling to trap errors (although exceptions should only be used for trapping truly exceptional events). *Our exception model includes two levels of exceptions. The top level of exceptions are defined in Core/Exceptions/Exceptions.h and are thrown when a class specific exception is not appropriate. The bottom level of exceptions are class specific, defined in the class that throws them, and are subclassed off of the top level exceptions. These class specific exceptions are exceptions that can be caught and handled from the calling function (1 level above the class.) However, if the calling function chooses not to (or cannot) handle the class specific exception, the exception will propagate to the next level at which point it can be trapped and handled in the form of a top level exception. An example of a class specific exception would be a StackUnderFlowException for a stack class. *Comments should support generated documentation format. Comments in declarations should be of the form: //! … or /*! … */ These comments will then be visible in our online documentation. Comments in the definition part of your code need not have the !, as all the code is visible online including comments. Create comments that help the reader navigate your code. Comments should help the reader find the area of code he/she is looking for quickly. *Do not use identifiers which begin with one ('_') or two ('__') underscores. *Never use the $Id or $Log cvs directives. This confuses merging between branches. *Do not use #define to obtain more efficient code— use inline functions instead. *Avoid the use of numeric values in code; use symbolic values instead. This applies to numeric values that are repeated within the code but represent the same value. Eg: MAX_ARRAY_SIZE = 1024. *Do not compare a pointer to NULL or assign NULL to a pointer; use 0 instead. *Avoid explicit type conversions (casts). However when a cast is needed, an explicit cast is prefered over having the compiler decide which kind of cast to do. *Never convert a constant to a non-constant. Use mutable if necesary. However, be aware of the thread safety problems this causes. *Never use goto. *Do not use 'malloc', 'realloc', or 'free'. Use 'new' and 'delete' instead ===Recommended coding standards=== *Never use more than 80 columns per line. This way the code is easier to edit in older editors. *An include file for a class should have a file name of the form class name.h. Use uppercase and lowercase letters in the same way as in the source code. *Never include ''/usr/include/*.h'', for example iostream.h in any header file. This causes a huge amount of code to be recursively included and needlessly compiled. Use forward declarations to avoid this. *Group local includes together, then group system includes together. *Avoid global data if possible. *Optimize code only if you know that you have a performance problem. Think twice before you begin. *Always force your compiler to compile with the maximum warning setting, and before you check in code, fix all warnings. *Place machine-dependent code in a special file so that it may be easily located when porting code from one machine to another. *Encapsulate global variables and constants, enumerated types, and typedefs in a class. *Functions in general should not be more than 30 lines long (excluding documentation and indentation). If you find this situation, break the function into several smaller functions. *If a function stores a pointer to an object which is accessed via an argument, let the argument have the type pointer. Use reference arguments in other cases. *When overloading functions, all variations should have the same semantics (be used for the same purpose). *Do not assume that you know how the invocation mechanism for a function is implemented. *Do not assume that an object is initialized in any special order in constructors. *Do not assume that static objects are initialized in any special order. *Use a typedef to simplify program syntax when declaring function pointers, or templated types. *When two operators are opposites (such as == and !=), it is appropriate to define both. *Use constant references ''(const &)'' instead of call-by-value, unless using a pre-defined data type or a pointer. *Minimize the number of temporary objects that are created as return values from functions or as arguments to functions. *Do not write code which is dependent on the lifetime of a temporary object. *Do not assume that the operands in an expression are evaluated in a definite order. Use parenthesis to enforce an order. *Use parentheses to clarify the order of evaluation for operators in expressions. *Avoid using shift operations instead of arithmetic operations. *Use ''std::cout'' instead of ''printf''. *Do not assume that an int and a long have the same size nor that they are always 32 bits in length. *Do not assume that pointers and integers have the same size. *Do not assume that longs, floats, doubles or long doubles may begin at arbitrary addresses. *Always use plain char if 8-bit ASCII is used. Otherwise, use signed char or unsigned char. *Do not assume that a char is signed or unsigned. *Do not depend on underflow or overflow functioning in any special way. *Avoid the use of ''using namespace std;'' (or other namespaces) in include files as they can spill into other files with unintended consequences. *Try to use smart pointers (Handles) to automatically deallocate memory when an object is not needed anymore. *When a function is pure, i.e. it does not modify any of the class members, define it as pure so it can be used safely in multi threaded code. *When variables are being shared between threads always use a mutex for access control. *Use the string class and not C-strings where possible. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:DynamicCompilation 0 1683 1592 2006-11-02T01:01:17Z Jeroen 19 wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. 1595 1592 2006-11-02T01:28:22Z Jeroen 19 /* Overview */ wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. ===Creating a dynamically compiled algorithm=== The most common use for dynamic compilation is to create an algorithm that operates on the Field class. As the GenericField class is templated using three classes, an algorithm that operates on this class can consist out of a wide range of possible algorithms. Using dynamic compilation SCIRun compiles the proper algorithm when it knows by means of the user defined fields which algorithms to operate on. In this chapter creating a dynamic compiled algorithm is demonstrated by means of the ConvertToPointCloud algorithm. This algorithm takes a handle to field and extracts all the node locations from the mesh and returns a field that does not contain any elements anymore but only the actual node points that were part of the input field. The idea of a dynamically compiling class is the following: A general pointer to the Field is given to the algorithm, this is a pointer to the base class of the Field which is the same for all possible Field types. To discover what type it is a virtual function call into the Field is made revealing its true identity. This type information is used to compile a templated algorithm that uses the specific field type as a template argument. When the algorithm is compiled it will execute the algorithm. To create a dynamically compiling algorithm we start by defining to classes: a base class and a templated class derived from that. In this example the base class is called ConvertToPointCloudAlgo: This class contains the general access point for the dynamic compiled algorithm. It takes handles (pointers) to the Field base class. It will examine all the input arguments and determine which type the input Fields actually are. When this is known it will tell the dynamic compiler which algorithm needs to be compiled to carry out the operation with high efficiency. The second class is a template class called ToPointCloudAlgoT: This class is derived from the base class and has a similar call to the algorithm. This templated class contains the actual algorithm. When the dynamic compiler is invoked it will take in a handle to the base algorithm, internally it will overload this with the handle to an instatiation of the templated algorithm. Since the templated class will overload the access function of the base class with the one defined in the templated version using virtual function, one can now invoke the compiled algorithm by calling the access on the base class. The base class now defined as following: class ToPointCloudAlgo : public DynamicAlgoBase { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is the general access point to the dynamic algorithms in the class. The function ToPointCloud() is the access function to the dynamically compiled algorithm. It is a good practive to define the access functions to the dynamically compiled algorithms as following: virtual bool MyFunction(ProgressReporter* pr, FieldHandle input1, FieldHandle input2, ... FieldHandle& output) Here the algorithm returns false if it fails and true if it succeeds. In order to forward the error message all dynamic algorithms should take in a pointer to the current ProgressReporter. The ProgressReporter reports everything from the progress the algorithm made, to errors, remarks, warnings and is the general access point to forward messages to the user. Hence this algorithm can be used in a module as following ToPointCloudAlgo algo; if(!(algo->ToPointCloud(this,input,output))) { // algorothm failed } Note that the module class has been derived from the ProgressReporter and hence the pointer to the module can be used to initialise the ProgressReporter 1596 1595 2006-11-02T04:26:47Z Jeroen 19 /* Dynamic Compilation */ wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. ===Creating a dynamically compiled algorithm=== The most common use for dynamic compilation is to create an algorithm that operates on the Field class. As the GenericField class is templated using three classes, an algorithm that operates on this class can consist out of a wide range of possible algorithms. Using dynamic compilation SCIRun compiles the proper algorithm when it knows by means of the user defined fields which algorithms to operate on. In this chapter creating a dynamic compiled algorithm is demonstrated by means of the ConvertToPointCloud algorithm. This algorithm takes a handle to field and extracts all the node locations from the mesh and returns a field that does not contain any elements anymore but only the actual node points that were part of the input field. The idea of a dynamically compiling class is the following: A general pointer to the Field is given to the algorithm, this is a pointer to the base class of the Field which is the same for all possible Field types. To discover what type it is a virtual function call into the Field is made revealing its true identity. This type information is used to compile a templated algorithm that uses the specific field type as a template argument. When the algorithm is compiled it will execute the algorithm. To create a dynamically compiling algorithm we start by defining to classes: a base class and a templated class derived from that. In this example the base class is called ConvertToPointCloudAlgo: This class contains the general access point for the dynamic compiled algorithm. It takes handles (pointers) to the Field base class. It will examine all the input arguments and determine which type the input Fields actually are. When this is known it will tell the dynamic compiler which algorithm needs to be compiled to carry out the operation with high efficiency. The second class is a template class called ToPointCloudAlgoT: This class is derived from the base class and has a similar call to the algorithm. This templated class contains the actual algorithm. When the dynamic compiler is invoked it will take in a handle to the base algorithm, internally it will overload this with the handle to an instatiation of the templated algorithm. Since the templated class will overload the access function of the base class with the one defined in the templated version using virtual function, one can now invoke the compiled algorithm by calling the access on the base class. The base class now defined as following: class ToPointCloudAlgo : public DynamicAlgoBase { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is the general access point to the dynamic algorithms in the class. The function ToPointCloud() is the access function to the dynamically compiled algorithm. It is a good practive to define the access functions to the dynamically compiled algorithms as following: virtual bool MyFunction(ProgressReporter* pr, FieldHandle input1, FieldHandle input2, ... FieldHandle& output) Here the algorithm returns false if it fails and true if it succeeds. In order to forward the error message all dynamic algorithms should take in a pointer to the current ProgressReporter. The ProgressReporter reports everything from the progress the algorithm made, to errors, remarks, warnings and is the general access point to forward messages to the user. Hence this algorithm can be used in a module as following: ToPointCloudAlgo algo; if(!(algo->ToPointCloud(this,input,output))) { // algorothm failed } Note that the module class has been derived from the ProgressReporter and hence the pointer to the module can be used to initialise the ProgressReporter. The second class called ToPointCloudAlgoT is the actual implementation of the algorithm. Note that the name of the algorithm ends with a 'T' to denote that the algorithm is templated (this is not strictly needed but improves readability if the code). The second class will look like this: template <class FSRC, class FDST> class ToPointCloudAlgoT : public ToPointCloudAlgo { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is templated according to the input and output field (FSRC, FDST). This means that the specific field class can be accessed by dynamic casting the input and output to the respective types. === The Templated class === === The Base class === 1597 1596 2006-11-02T04:56:36Z Jeroen 19 /* The Templated class */ wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. ===Creating a dynamically compiled algorithm=== The most common use for dynamic compilation is to create an algorithm that operates on the Field class. As the GenericField class is templated using three classes, an algorithm that operates on this class can consist out of a wide range of possible algorithms. Using dynamic compilation SCIRun compiles the proper algorithm when it knows by means of the user defined fields which algorithms to operate on. In this chapter creating a dynamic compiled algorithm is demonstrated by means of the ConvertToPointCloud algorithm. This algorithm takes a handle to field and extracts all the node locations from the mesh and returns a field that does not contain any elements anymore but only the actual node points that were part of the input field. The idea of a dynamically compiling class is the following: A general pointer to the Field is given to the algorithm, this is a pointer to the base class of the Field which is the same for all possible Field types. To discover what type it is a virtual function call into the Field is made revealing its true identity. This type information is used to compile a templated algorithm that uses the specific field type as a template argument. When the algorithm is compiled it will execute the algorithm. To create a dynamically compiling algorithm we start by defining to classes: a base class and a templated class derived from that. In this example the base class is called ConvertToPointCloudAlgo: This class contains the general access point for the dynamic compiled algorithm. It takes handles (pointers) to the Field base class. It will examine all the input arguments and determine which type the input Fields actually are. When this is known it will tell the dynamic compiler which algorithm needs to be compiled to carry out the operation with high efficiency. The second class is a template class called ToPointCloudAlgoT: This class is derived from the base class and has a similar call to the algorithm. This templated class contains the actual algorithm. When the dynamic compiler is invoked it will take in a handle to the base algorithm, internally it will overload this with the handle to an instatiation of the templated algorithm. Since the templated class will overload the access function of the base class with the one defined in the templated version using virtual function, one can now invoke the compiled algorithm by calling the access on the base class. The base class now defined as following: class ToPointCloudAlgo : public DynamicAlgoBase { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is the general access point to the dynamic algorithms in the class. The function ToPointCloud() is the access function to the dynamically compiled algorithm. It is a good practive to define the access functions to the dynamically compiled algorithms as following: virtual bool MyFunction(ProgressReporter* pr, FieldHandle input1, FieldHandle input2, ... FieldHandle& output) Here the algorithm returns false if it fails and true if it succeeds. In order to forward the error message all dynamic algorithms should take in a pointer to the current ProgressReporter. The ProgressReporter reports everything from the progress the algorithm made, to errors, remarks, warnings and is the general access point to forward messages to the user. Hence this algorithm can be used in a module as following: ToPointCloudAlgo algo; if(!(algo->ToPointCloud(this,input,output))) { // algorothm failed } Note that the module class has been derived from the ProgressReporter and hence the pointer to the module can be used to initialise the ProgressReporter. The second class called ToPointCloudAlgoT is the actual implementation of the algorithm. Note that the name of the algorithm ends with a 'T' to denote that the algorithm is templated (this is not strictly needed but improves readability if the code). The second class will look like this: template <class FSRC, class FDST> class ToPointCloudAlgoT : public ToPointCloudAlgo { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is templated according to the input and output field (FSRC, FDST). This means that the specific field class can be accessed by dynamic casting the input and output to the respective types. === The Templated class === Since the algorithm is templated, we need to define its implemenation in the header file. template <class FSRC, class FDST> bool ToPointCloudAlgoT<FSRC, FDST>::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { The first thing the algorithm should do is to cast the pointer contained in the input handle into a pointer of the proper type. Remember this part of the code is dynamically compiled and hence the class FSRC is of the type of the class behind pointer in input, where input only points to the base class. To access the derived class we need to dynamically cast this pointer into its actual type: FSRC *ifield = dynamic_cast<FSRC *>(input.get_rep()); In this example the function ''get_rep()'' gets the pointer contained in the handle. After getting the pointer it is a good habit to insert a safety check, to test whether we actually have a pointer. Although we should get the pointer, if something went wrong in the dynamic casting we get a zero pointer . As we do not want to use a null pointer, we should add a little safety check; if (ifield == 0) { // The object is of a different type // Error reporting: // we forward the specific message to the ProgressReporter and return a // false to indicate that an error has occured. // The ProgressReporter returns the error message to the module window pr->error("ToPointCloud: Could not obtain input field"); return (false); } So far we got the pointer to the field. It is really useful to obtain the pointer to the mesh as well. To get a pointer to the specific mesh we use the function ''get_typed_mesh()''. In order to get the proper pointer definition we look into the field class where the type mesh_handle_type is defined. As the type consists of a templatename and the actual type defined inside the templated class we use ''typename'' to indicate to the compiler that FSRC::mesh_handle_type still needs to be parsed by specifying the actual template class. typename FSRC::mesh_handle_type imesh = ifield->get_typed_mesh(); if (imesh == 0) { pr->error("ToPointCloud: No mesh associated with input field"); return (false); } Now we have the pointers to the input mesh, we need to create an output mesh which is of the type of a PointCloud. A mesh is created as following: typename FDST::mesh_handle_type omesh = scinew typename FDST::mesh_type(); if (omesh == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } Note we use the following memory management strategy here: We store the pointer to the new mesh immediately into a mesh handle. Handles are smart pointers that automatically deallocate memory when the handle object is deallocated (unless the handle has been copied). Using handles to refer to new objects will make sure that, if we encounter an error in the code and we exit with a return (false), all memory will be freed automatically as the handle will be desrtoyed. The handle was not copied in that case and thus the object it is pointing to will be automatically destroyed. // Actual algorithm starts here: // Synchronize makes sure that all function calls to retrieve the elements and // nodes are working. Some mesh types need this. imesh->synchronize(Mesh::NODES_E); if (imesh->dimensionality() == 1) imesh->synchronize(Mesh::EDGES_E); if (imesh->dimensionality() == 2) imesh->synchronize(Mesh::FACES_E); if (imesh->dimensionality() == 3) imesh->synchronize(Mesh::CELLS_E); // Define iterators over the nodes typename FSRC::mesh_type::Node::iterator bn, en; typename FSRC::mesh_type::Node::size_type numnodes; imesh->begin(bn); // get begin iterator imesh->end(en); // get end iterator imesh->size(numnodes); // get the number of nodes in the mesh // It is always good to preallocate memory if the number of nodes in the output // mesh is known omesh->node_reserve(numnodes); // Iterate over all nodes and copy each node while (bn != en) { Point point; imesh->get_center(point, *bn); omesh->add_point(point); ++bn; } // We have the new msh now make a new field FDST *ofield = scinew FDST(omesh); output = dynamic_cast<FDST*>(ofield); if (ofield == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } // Make sure Fdata matches the size of the number of nodes ofield->resize_fdata(); // Is this a linear input field, if so we can copy data from node to node if (ifield->basis_order() == 1) { typename FSRC::fdata_type::iterator bid = ifield->fdata().begin(); typename FSRC::fdata_type::iterator eid = ifield->fdata().end(); typename FDST::fdata_type::iterator bod = ofield->fdata().begin(); while (bid != eid) { *bod = *bid; ++bod; ++bid; } } // In the other cases we cannot preserve data and the output field should // already be of the class NoDataBasis. // Make sure we copy all the properties. // Some old modules make still use of the property manager and hence to have // them work properly the properties from the input field will be assigned to // the output field. // As there is no centeral list of properties used, some of the properties // may not be valid anymore in the output field. Hence one is advised not to // use the property manager as their validity in the FieldObject cannot be // garanteed. output->copy_properties(input.get_rep()); // Success: return (true); } === The Base class === 1598 1597 2006-11-02T05:05:53Z Jeroen 19 /* The Templated class */ wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. ===Creating a dynamically compiled algorithm=== The most common use for dynamic compilation is to create an algorithm that operates on the Field class. As the GenericField class is templated using three classes, an algorithm that operates on this class can consist out of a wide range of possible algorithms. Using dynamic compilation SCIRun compiles the proper algorithm when it knows by means of the user defined fields which algorithms to operate on. In this chapter creating a dynamic compiled algorithm is demonstrated by means of the ConvertToPointCloud algorithm. This algorithm takes a handle to field and extracts all the node locations from the mesh and returns a field that does not contain any elements anymore but only the actual node points that were part of the input field. The idea of a dynamically compiling class is the following: A general pointer to the Field is given to the algorithm, this is a pointer to the base class of the Field which is the same for all possible Field types. To discover what type it is a virtual function call into the Field is made revealing its true identity. This type information is used to compile a templated algorithm that uses the specific field type as a template argument. When the algorithm is compiled it will execute the algorithm. To create a dynamically compiling algorithm we start by defining to classes: a base class and a templated class derived from that. In this example the base class is called ConvertToPointCloudAlgo: This class contains the general access point for the dynamic compiled algorithm. It takes handles (pointers) to the Field base class. It will examine all the input arguments and determine which type the input Fields actually are. When this is known it will tell the dynamic compiler which algorithm needs to be compiled to carry out the operation with high efficiency. The second class is a template class called ToPointCloudAlgoT: This class is derived from the base class and has a similar call to the algorithm. This templated class contains the actual algorithm. When the dynamic compiler is invoked it will take in a handle to the base algorithm, internally it will overload this with the handle to an instatiation of the templated algorithm. Since the templated class will overload the access function of the base class with the one defined in the templated version using virtual function, one can now invoke the compiled algorithm by calling the access on the base class. The base class now defined as following: class ToPointCloudAlgo : public DynamicAlgoBase { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is the general access point to the dynamic algorithms in the class. The function ToPointCloud() is the access function to the dynamically compiled algorithm. It is a good practive to define the access functions to the dynamically compiled algorithms as following: virtual bool MyFunction(ProgressReporter* pr, FieldHandle input1, FieldHandle input2, ... FieldHandle& output) Here the algorithm returns false if it fails and true if it succeeds. In order to forward the error message all dynamic algorithms should take in a pointer to the current ProgressReporter. The ProgressReporter reports everything from the progress the algorithm made, to errors, remarks, warnings and is the general access point to forward messages to the user. Hence this algorithm can be used in a module as following: ToPointCloudAlgo algo; if(!(algo->ToPointCloud(this,input,output))) { // algorothm failed } Note that the module class has been derived from the ProgressReporter and hence the pointer to the module can be used to initialise the ProgressReporter. The second class called ToPointCloudAlgoT is the actual implementation of the algorithm. Note that the name of the algorithm ends with a 'T' to denote that the algorithm is templated (this is not strictly needed but improves readability if the code). The second class will look like this: template <class FSRC, class FDST> class ToPointCloudAlgoT : public ToPointCloudAlgo { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is templated according to the input and output field (FSRC, FDST). This means that the specific field class can be accessed by dynamic casting the input and output to the respective types. === The Templated class === Since the algorithm is templated, we need to define its implemenation in the header file. template <class FSRC, class FDST> bool ToPointCloudAlgoT<FSRC, FDST>::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { The first thing the algorithm should do is to cast the pointer contained in the input handle into a pointer of the proper type. Remember this part of the code is dynamically compiled and hence the class FSRC is of the type of the class behind pointer in input, where input only points to the base class. To access the derived class we need to dynamically cast this pointer into its actual type: FSRC *ifield = dynamic_cast<FSRC *>(input.get_rep()); In this example the function ''get_rep()'' gets the pointer contained in the handle. After getting the pointer it is a good habit to insert a safety check, to test whether we actually have a pointer. Although we should get the pointer, if something went wrong in the dynamic casting we get a zero pointer . As we do not want to use a null pointer, we should add a little safety check; if (ifield == 0) { // The object is of a different type // Error reporting: // we forward the specific message to the ProgressReporter and return a // false to indicate that an error has occured. // The ProgressReporter returns the error message to the module window pr->error("ToPointCloud: Could not obtain input field"); return (false); } So far we got the pointer to the field. It is really useful to obtain the pointer to the mesh as well. To get a pointer to the specific mesh we use the function ''get_typed_mesh()''. In order to get the proper pointer definition we look into the field class where the type mesh_handle_type is defined. As the type consists of a templatename and the actual type defined inside the templated class we use ''typename'' to indicate to the compiler that FSRC::mesh_handle_type still needs to be parsed by specifying the actual template class. typename FSRC::mesh_handle_type imesh = ifield->get_typed_mesh(); if (imesh == 0) { pr->error("ToPointCloud: No mesh associated with input field"); return (false); } Now we have the pointers to the input mesh, we need to create an output mesh which is of the type of a PointCloud. A mesh is created as following: typename FDST::mesh_handle_type omesh = scinew typename FDST::mesh_type(); if (omesh == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } Note we use the following memory management strategy here: We store the pointer to the new mesh immediately into a mesh handle. Handles are smart pointers that automatically deallocate memory when the handle object is deallocated (unless the handle has been copied). Using handles to refer to new objects will make sure that, if we encounter an error in the code and we exit with a return (false), all memory will be freed automatically as the handle will be desrtoyed. The handle was not copied in that case and thus the object it is pointing to will be automatically destroyed. Now we need to implement the actual algorithm: We need to define iterators over the mesh, in this case they depend on the type of the mesh and have to be defined through the templated classes: typename FSRC::mesh_type::Node::iterator bn, en; typename FSRC::mesh_type::Node::size_type numnodes; imesh->begin(bn); // get begin iterator imesh->end(en); // get end iterator imesh->size(numnodes); // get the number of nodes in the mesh It is always good to preallocate memory if the number of nodes in the output mesh is known. omesh->node_reserve(numnodes); In the next loop the algorithm loops over all the nodes in the input mesh. It extracts the exact location of the point and then inserts the node into the output mesh. while (bn != en) { Point point; imesh->get_center(point, *bn); omesh->add_point(point); ++bn; } // We have the new msh now make a new field FDST *ofield = scinew FDST(omesh); output = dynamic_cast<FDST*>(ofield); if (ofield == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } // Make sure Fdata matches the size of the number of nodes ofield->resize_fdata(); // Is this a linear input field, if so we can copy data from node to node if (ifield->basis_order() == 1) { typename FSRC::fdata_type::iterator bid = ifield->fdata().begin(); typename FSRC::fdata_type::iterator eid = ifield->fdata().end(); typename FDST::fdata_type::iterator bod = ofield->fdata().begin(); while (bid != eid) { *bod = *bid; ++bod; ++bid; } } // In the other cases we cannot preserve data and the output field should // already be of the class NoDataBasis. // Make sure we copy all the properties. // Some old modules make still use of the property manager and hence to have // them work properly the properties from the input field will be assigned to // the output field. // As there is no centeral list of properties used, some of the properties // may not be valid anymore in the output field. Hence one is advised not to // use the property manager as their validity in the FieldObject cannot be // garanteed. output->copy_properties(input.get_rep()); // Success: return (true); } === The Base class === 1599 1598 2006-11-02T05:18:55Z Jeroen 19 /* The Templated class */ wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. ===Creating a dynamically compiled algorithm=== The most common use for dynamic compilation is to create an algorithm that operates on the Field class. As the GenericField class is templated using three classes, an algorithm that operates on this class can consist out of a wide range of possible algorithms. Using dynamic compilation SCIRun compiles the proper algorithm when it knows by means of the user defined fields which algorithms to operate on. In this chapter creating a dynamic compiled algorithm is demonstrated by means of the ConvertToPointCloud algorithm. This algorithm takes a handle to field and extracts all the node locations from the mesh and returns a field that does not contain any elements anymore but only the actual node points that were part of the input field. The idea of a dynamically compiling class is the following: A general pointer to the Field is given to the algorithm, this is a pointer to the base class of the Field which is the same for all possible Field types. To discover what type it is a virtual function call into the Field is made revealing its true identity. This type information is used to compile a templated algorithm that uses the specific field type as a template argument. When the algorithm is compiled it will execute the algorithm. To create a dynamically compiling algorithm we start by defining to classes: a base class and a templated class derived from that. In this example the base class is called ConvertToPointCloudAlgo: This class contains the general access point for the dynamic compiled algorithm. It takes handles (pointers) to the Field base class. It will examine all the input arguments and determine which type the input Fields actually are. When this is known it will tell the dynamic compiler which algorithm needs to be compiled to carry out the operation with high efficiency. The second class is a template class called ToPointCloudAlgoT: This class is derived from the base class and has a similar call to the algorithm. This templated class contains the actual algorithm. When the dynamic compiler is invoked it will take in a handle to the base algorithm, internally it will overload this with the handle to an instatiation of the templated algorithm. Since the templated class will overload the access function of the base class with the one defined in the templated version using virtual function, one can now invoke the compiled algorithm by calling the access on the base class. The base class now defined as following: class ToPointCloudAlgo : public DynamicAlgoBase { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is the general access point to the dynamic algorithms in the class. The function ToPointCloud() is the access function to the dynamically compiled algorithm. It is a good practive to define the access functions to the dynamically compiled algorithms as following: virtual bool MyFunction(ProgressReporter* pr, FieldHandle input1, FieldHandle input2, ... FieldHandle& output) Here the algorithm returns false if it fails and true if it succeeds. In order to forward the error message all dynamic algorithms should take in a pointer to the current ProgressReporter. The ProgressReporter reports everything from the progress the algorithm made, to errors, remarks, warnings and is the general access point to forward messages to the user. Hence this algorithm can be used in a module as following: ToPointCloudAlgo algo; if(!(algo->ToPointCloud(this,input,output))) { // algorothm failed } Note that the module class has been derived from the ProgressReporter and hence the pointer to the module can be used to initialise the ProgressReporter. The second class called ToPointCloudAlgoT is the actual implementation of the algorithm. Note that the name of the algorithm ends with a 'T' to denote that the algorithm is templated (this is not strictly needed but improves readability if the code). The second class will look like this: template <class FSRC, class FDST> class ToPointCloudAlgoT : public ToPointCloudAlgo { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is templated according to the input and output field (FSRC, FDST). This means that the specific field class can be accessed by dynamic casting the input and output to the respective types. === The Templated class === Since the algorithm is templated, we need to define its implemenation in the header file. template <class FSRC, class FDST> bool ToPointCloudAlgoT<FSRC, FDST>::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { The first thing the algorithm should do is to cast the pointer contained in the input handle into a pointer of the proper type. Remember this part of the code is dynamically compiled and hence the class FSRC is of the type of the class behind pointer in input, where input only points to the base class. To access the derived class we need to dynamically cast this pointer into its actual type: FSRC *ifield = dynamic_cast<FSRC *>(input.get_rep()); In this example the function ''get_rep()'' gets the pointer contained in the handle. After getting the pointer it is a good habit to insert a safety check, to test whether we actually have a pointer. Although we should get the pointer, if something went wrong in the dynamic casting we get a zero pointer . As we do not want to use a null pointer, we should add a little safety check; if (ifield == 0) { // The object is of a different type // Error reporting: // we forward the specific message to the ProgressReporter and return a // false to indicate that an error has occured. // The ProgressReporter returns the error message to the module window pr->error("ToPointCloud: Could not obtain input field"); return (false); } So far we got the pointer to the field. It is really useful to obtain the pointer to the mesh as well. To get a pointer to the specific mesh we use the function ''get_typed_mesh()''. In order to get the proper pointer definition we look into the field class where the type mesh_handle_type is defined. As the type consists of a templatename and the actual type defined inside the templated class we use ''typename'' to indicate to the compiler that FSRC::mesh_handle_type still needs to be parsed by specifying the actual template class. typename FSRC::mesh_handle_type imesh = ifield->get_typed_mesh(); if (imesh == 0) { pr->error("ToPointCloud: No mesh associated with input field"); return (false); } Now we have the pointers to the input mesh, we need to create an output mesh which is of the type of a PointCloud. A mesh is created as following: typename FDST::mesh_handle_type omesh = scinew typename FDST::mesh_type(); if (omesh == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } Note we use the following memory management strategy here: We store the pointer to the new mesh immediately into a mesh handle. Handles are smart pointers that automatically deallocate memory when the handle object is deallocated (unless the handle has been copied). Using handles to refer to new objects will make sure that, if we encounter an error in the code and we exit with a return (false), all memory will be freed automatically as the handle will be desrtoyed. The handle was not copied in that case and thus the object it is pointing to will be automatically destroyed. Now we need to implement the actual algorithm: We need to define iterators over the mesh, in this case they depend on the type of the mesh and have to be defined through the templated classes: typename FSRC::mesh_type::Node::iterator bn, en; typename FSRC::mesh_type::Node::size_type numnodes; imesh->begin(bn); // get begin iterator imesh->end(en); // get end iterator imesh->size(numnodes); // get the number of nodes in the mesh It is always good to preallocate memory if the number of nodes in the output mesh is known. omesh->node_reserve(numnodes); In the next loop the algorithm loops over all the nodes in the input mesh. It extracts the exact location of the point and then inserts the node into the output mesh. while (bn != en) { Point point; imesh->get_center(point, *bn); omesh->add_point(point); ++bn; } Now the new mesh has been created, the output field can be created. This output field can then be attached to the output FieldHandle. FDST *ofield = scinew FDST(omesh); output = ofield; if (ofield == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } The algorithm is completed by copying data from the nodes in the input field into the nodes of the output field. This copying is only done when the data is located at the nodes to begin with. In order to check whether the data is located at the nodes the ''basis_order()'' of the mesh is checked. // Make sure Fdata matches the size of the number of nodes ofield->resize_fdata(); // Is this a linear input field, if so we can copy data from node to node if (ifield->basis_order() == 1) { typename FSRC::fdata_type::iterator bid = ifield->fdata().begin(); typename FSRC::fdata_type::iterator eid = ifield->fdata().end(); typename FDST::fdata_type::iterator bod = ofield->fdata().begin(); while (bid != eid) { *bod = *bid; ++bod; ++bid; } } The algorithm is finished by copying the properties from the input field to the output field. output->copy_properties(input.get_rep()); // Success: return (true); } === The Base class === 1600 1599 2006-11-02T05:20:54Z Jeroen 19 /* The Base class */ wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. ===Creating a dynamically compiled algorithm=== The most common use for dynamic compilation is to create an algorithm that operates on the Field class. As the GenericField class is templated using three classes, an algorithm that operates on this class can consist out of a wide range of possible algorithms. Using dynamic compilation SCIRun compiles the proper algorithm when it knows by means of the user defined fields which algorithms to operate on. In this chapter creating a dynamic compiled algorithm is demonstrated by means of the ConvertToPointCloud algorithm. This algorithm takes a handle to field and extracts all the node locations from the mesh and returns a field that does not contain any elements anymore but only the actual node points that were part of the input field. The idea of a dynamically compiling class is the following: A general pointer to the Field is given to the algorithm, this is a pointer to the base class of the Field which is the same for all possible Field types. To discover what type it is a virtual function call into the Field is made revealing its true identity. This type information is used to compile a templated algorithm that uses the specific field type as a template argument. When the algorithm is compiled it will execute the algorithm. To create a dynamically compiling algorithm we start by defining to classes: a base class and a templated class derived from that. In this example the base class is called ConvertToPointCloudAlgo: This class contains the general access point for the dynamic compiled algorithm. It takes handles (pointers) to the Field base class. It will examine all the input arguments and determine which type the input Fields actually are. When this is known it will tell the dynamic compiler which algorithm needs to be compiled to carry out the operation with high efficiency. The second class is a template class called ToPointCloudAlgoT: This class is derived from the base class and has a similar call to the algorithm. This templated class contains the actual algorithm. When the dynamic compiler is invoked it will take in a handle to the base algorithm, internally it will overload this with the handle to an instatiation of the templated algorithm. Since the templated class will overload the access function of the base class with the one defined in the templated version using virtual function, one can now invoke the compiled algorithm by calling the access on the base class. The base class now defined as following: class ToPointCloudAlgo : public DynamicAlgoBase { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is the general access point to the dynamic algorithms in the class. The function ToPointCloud() is the access function to the dynamically compiled algorithm. It is a good practive to define the access functions to the dynamically compiled algorithms as following: virtual bool MyFunction(ProgressReporter* pr, FieldHandle input1, FieldHandle input2, ... FieldHandle& output) Here the algorithm returns false if it fails and true if it succeeds. In order to forward the error message all dynamic algorithms should take in a pointer to the current ProgressReporter. The ProgressReporter reports everything from the progress the algorithm made, to errors, remarks, warnings and is the general access point to forward messages to the user. Hence this algorithm can be used in a module as following: ToPointCloudAlgo algo; if(!(algo->ToPointCloud(this,input,output))) { // algorothm failed } Note that the module class has been derived from the ProgressReporter and hence the pointer to the module can be used to initialise the ProgressReporter. The second class called ToPointCloudAlgoT is the actual implementation of the algorithm. Note that the name of the algorithm ends with a 'T' to denote that the algorithm is templated (this is not strictly needed but improves readability if the code). The second class will look like this: template <class FSRC, class FDST> class ToPointCloudAlgoT : public ToPointCloudAlgo { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is templated according to the input and output field (FSRC, FDST). This means that the specific field class can be accessed by dynamic casting the input and output to the respective types. === The Templated class === Since the algorithm is templated, we need to define its implemenation in the header file. template <class FSRC, class FDST> bool ToPointCloudAlgoT<FSRC, FDST>::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { The first thing the algorithm should do is to cast the pointer contained in the input handle into a pointer of the proper type. Remember this part of the code is dynamically compiled and hence the class FSRC is of the type of the class behind pointer in input, where input only points to the base class. To access the derived class we need to dynamically cast this pointer into its actual type: FSRC *ifield = dynamic_cast<FSRC *>(input.get_rep()); In this example the function ''get_rep()'' gets the pointer contained in the handle. After getting the pointer it is a good habit to insert a safety check, to test whether we actually have a pointer. Although we should get the pointer, if something went wrong in the dynamic casting we get a zero pointer . As we do not want to use a null pointer, we should add a little safety check; if (ifield == 0) { // The object is of a different type // Error reporting: // we forward the specific message to the ProgressReporter and return a // false to indicate that an error has occured. // The ProgressReporter returns the error message to the module window pr->error("ToPointCloud: Could not obtain input field"); return (false); } So far we got the pointer to the field. It is really useful to obtain the pointer to the mesh as well. To get a pointer to the specific mesh we use the function ''get_typed_mesh()''. In order to get the proper pointer definition we look into the field class where the type mesh_handle_type is defined. As the type consists of a templatename and the actual type defined inside the templated class we use ''typename'' to indicate to the compiler that FSRC::mesh_handle_type still needs to be parsed by specifying the actual template class. typename FSRC::mesh_handle_type imesh = ifield->get_typed_mesh(); if (imesh == 0) { pr->error("ToPointCloud: No mesh associated with input field"); return (false); } Now we have the pointers to the input mesh, we need to create an output mesh which is of the type of a PointCloud. A mesh is created as following: typename FDST::mesh_handle_type omesh = scinew typename FDST::mesh_type(); if (omesh == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } Note we use the following memory management strategy here: We store the pointer to the new mesh immediately into a mesh handle. Handles are smart pointers that automatically deallocate memory when the handle object is deallocated (unless the handle has been copied). Using handles to refer to new objects will make sure that, if we encounter an error in the code and we exit with a return (false), all memory will be freed automatically as the handle will be desrtoyed. The handle was not copied in that case and thus the object it is pointing to will be automatically destroyed. Now we need to implement the actual algorithm: We need to define iterators over the mesh, in this case they depend on the type of the mesh and have to be defined through the templated classes: typename FSRC::mesh_type::Node::iterator bn, en; typename FSRC::mesh_type::Node::size_type numnodes; imesh->begin(bn); // get begin iterator imesh->end(en); // get end iterator imesh->size(numnodes); // get the number of nodes in the mesh It is always good to preallocate memory if the number of nodes in the output mesh is known. omesh->node_reserve(numnodes); In the next loop the algorithm loops over all the nodes in the input mesh. It extracts the exact location of the point and then inserts the node into the output mesh. while (bn != en) { Point point; imesh->get_center(point, *bn); omesh->add_point(point); ++bn; } Now the new mesh has been created, the output field can be created. This output field can then be attached to the output FieldHandle. FDST *ofield = scinew FDST(omesh); output = ofield; if (ofield == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } The algorithm is completed by copying data from the nodes in the input field into the nodes of the output field. This copying is only done when the data is located at the nodes to begin with. In order to check whether the data is located at the nodes the ''basis_order()'' of the mesh is checked. // Make sure Fdata matches the size of the number of nodes ofield->resize_fdata(); // Is this a linear input field, if so we can copy data from node to node if (ifield->basis_order() == 1) { typename FSRC::fdata_type::iterator bid = ifield->fdata().begin(); typename FSRC::fdata_type::iterator eid = ifield->fdata().end(); typename FDST::fdata_type::iterator bod = ofield->fdata().begin(); while (bid != eid) { *bod = *bid; ++bod; ++bid; } } The algorithm is finished by copying the properties from the input field to the output field. output->copy_properties(input.get_rep()); // Success: return (true); } === The Base class === bool ToPointCloudAlgo::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { // Step 0: // Safety test: // Test whether we received actually a field. A handle can point to no object. // Using a null handle will cause the program to crash. Hence it is a good // policy to check all incoming handles and to see whether they point to actual // objects. // Handle: the function get_rep() returns the pointer contained in the handle if (input.get_rep() == 0) { // If we encounter a null pointer we return an error message and return to // the program to deal with this error. pr->error("ToPointCloud: No input field"); return (false); } // Step 1: determine the type of the input fields and determine what type the // output field should be. // FieldInformation is a helper class that will store all the names of all the // components a field is made of. It takes a handle to a field and then // determines what the actual type is of the field. // As the current Field class has a variety of functions to query for its type // the FieldInformation object will do this for you and will contain a summary of all // the type information. // As the output field will be a variation on the input field we initialize // both with the input handle. FieldInformation fi(input); FieldInformation fo(input); // Recent updates to the software allow for quadratic and cubic hermitian // representations. However these methods have not fully been exposed yet. // Hence the iterators in the field will not consider the information needed // to define these non-linear elements. And hence although the algorithm may // provide output for these cases and may not fail, the output is mathematically // improper and hence for a proper implementation we have to wait until the // mesh and field classes are fully completed. // Here we test whether the class is part of any of these newly defined // non-linear classes. If so we return an error. if (fi.is_nonlinear()) { pr->error("ToPointCloud: This function has not yet been defined for non-linear elements yet"); return (false); } // If the mesh is already a PointCloud, we only need to copy the input to the // output. No algorithm is needed in this case. if (fi.get_mesh_type() == "PointCloudMesh") { output = input; return (true); } // Define the output type of the data fo.set_mesh_type("PointCloudMesh"); fo.set_mesh_basis_type("ConstantBasis"); if (fi.get_basis_type() == "ConstantBasis") { // Inform the user of some possible unintented consequence: pr->remark("Data is defined at the elements: hence removing the data from the field"); // Though we can still perform the operation fo.set_basis_type("NoDataBasis"); } // Step 3: Build information structure for the dynamic compilation // The only object we need to build to perform a dynamic compilation is the // CompileInfo. This object is created and we use the handle to the object // to pass the data structure around. // CompileInfo object: // The constructor needs the following information: // 1) an unique filename descriptor which can used in the on-the-fly-libs // directory. The FieldInformation object has a function that renders an // unique name for each field type. // 2) The name of the base class // 3) The name of the templated class without template descriptors // 4) The template descriptors separated by commas SCIRun::CompileInfoHandle ci = scinew CompileInfo( "ALGOToPointCloud."+fi.get_field_filename()+"."+fo.get_field_filename()+".", "ToPointCloudAlgo","ToPointCloudAlgoT", fi.get_field_name() + "," + fo.get_field_name()); // The dynamic algorithm will be created by writing a small piece of code in // a .cc file. This file needs to know which file to include for the definitions // of this algorithm. ci->add_include(TypeDescription::cc_to_h(__FILE__)); // This function is defined in the namespace SCIRunAlgo, add a statement // 'using namespace SCIRunAlgo' to the dynamic file to be created. ci->add_namespace("SCIRunAlgo"); ci->add_namespace("SCIRun"); // In order to be able to compile the dynamic code it needs to include the // descriptions of the mesh/field classes. The following two statements will // add the proper include files for both the input and output field types fi.fill_compile_info(ci); fo.fill_compile_info(ci); if (dynamic_cast<RegressionReporter *>(pr)) ci->keep_library_ = false; // Step 3: Build the dynamic algorithm // Create an access point to the dynamically compiled algorithm // Note: this is currently a handle to the base class algorithm. SCIRun::Handle<ToPointCloudAlgo> algo; // Dynamically compile the algorithm. // If the function is a success: algo will point to the dynamically // compiled algorithm. Since the access function is virtual executing it will // invoke the dynamic version. if(!(SCIRun::DynamicCompilation::compile(ci,algo,pr))) { // In case we detect an error: we forward the error to the user // The current system will take the filename of the file that failed to compile // It will display the error and dynamic file to the user, in the hope it // will tell something on what went wrong pr->compile_error(ci->filename_); // If compilation failed: remove file from on-the-fly-libs directory SCIRun::DynamicLoader::scirun_loader().cleanup_failed_compile(ci); return(false); } // Finally step 4: invoke dynamic algorithm // Depending on whether dynamic algorithm fails or succeeds, false or true // is returned. // As error messages are reportered to the ProgressReporter we do not need to // handle any error messages here, they automatically are forwarded to the user. return(algo->ToPointCloud(pr,input,output)); } 1601 1600 2006-11-02T05:52:40Z Jeroen 19 /* The Base class */ wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. ===Creating a dynamically compiled algorithm=== The most common use for dynamic compilation is to create an algorithm that operates on the Field class. As the GenericField class is templated using three classes, an algorithm that operates on this class can consist out of a wide range of possible algorithms. Using dynamic compilation SCIRun compiles the proper algorithm when it knows by means of the user defined fields which algorithms to operate on. In this chapter creating a dynamic compiled algorithm is demonstrated by means of the ConvertToPointCloud algorithm. This algorithm takes a handle to field and extracts all the node locations from the mesh and returns a field that does not contain any elements anymore but only the actual node points that were part of the input field. The idea of a dynamically compiling class is the following: A general pointer to the Field is given to the algorithm, this is a pointer to the base class of the Field which is the same for all possible Field types. To discover what type it is a virtual function call into the Field is made revealing its true identity. This type information is used to compile a templated algorithm that uses the specific field type as a template argument. When the algorithm is compiled it will execute the algorithm. To create a dynamically compiling algorithm we start by defining to classes: a base class and a templated class derived from that. In this example the base class is called ConvertToPointCloudAlgo: This class contains the general access point for the dynamic compiled algorithm. It takes handles (pointers) to the Field base class. It will examine all the input arguments and determine which type the input Fields actually are. When this is known it will tell the dynamic compiler which algorithm needs to be compiled to carry out the operation with high efficiency. The second class is a template class called ToPointCloudAlgoT: This class is derived from the base class and has a similar call to the algorithm. This templated class contains the actual algorithm. When the dynamic compiler is invoked it will take in a handle to the base algorithm, internally it will overload this with the handle to an instatiation of the templated algorithm. Since the templated class will overload the access function of the base class with the one defined in the templated version using virtual function, one can now invoke the compiled algorithm by calling the access on the base class. The base class now defined as following: class ToPointCloudAlgo : public DynamicAlgoBase { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is the general access point to the dynamic algorithms in the class. The function ToPointCloud() is the access function to the dynamically compiled algorithm. It is a good practive to define the access functions to the dynamically compiled algorithms as following: virtual bool MyFunction(ProgressReporter* pr, FieldHandle input1, FieldHandle input2, ... FieldHandle& output) Here the algorithm returns false if it fails and true if it succeeds. In order to forward the error message all dynamic algorithms should take in a pointer to the current ProgressReporter. The ProgressReporter reports everything from the progress the algorithm made, to errors, remarks, warnings and is the general access point to forward messages to the user. Hence this algorithm can be used in a module as following: ToPointCloudAlgo algo; if(!(algo->ToPointCloud(this,input,output))) { // algorothm failed } Note that the module class has been derived from the ProgressReporter and hence the pointer to the module can be used to initialise the ProgressReporter. The second class called ToPointCloudAlgoT is the actual implementation of the algorithm. Note that the name of the algorithm ends with a 'T' to denote that the algorithm is templated (this is not strictly needed but improves readability if the code). The second class will look like this: template <class FSRC, class FDST> class ToPointCloudAlgoT : public ToPointCloudAlgo { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is templated according to the input and output field (FSRC, FDST). This means that the specific field class can be accessed by dynamic casting the input and output to the respective types. === The Templated class === Since the algorithm is templated, we need to define its implemenation in the header file. template <class FSRC, class FDST> bool ToPointCloudAlgoT<FSRC, FDST>::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { The first thing the algorithm should do is to cast the pointer contained in the input handle into a pointer of the proper type. Remember this part of the code is dynamically compiled and hence the class FSRC is of the type of the class behind pointer in input, where input only points to the base class. To access the derived class we need to dynamically cast this pointer into its actual type: FSRC *ifield = dynamic_cast<FSRC *>(input.get_rep()); In this example the function ''get_rep()'' gets the pointer contained in the handle. After getting the pointer it is a good habit to insert a safety check, to test whether we actually have a pointer. Although we should get the pointer, if something went wrong in the dynamic casting we get a zero pointer . As we do not want to use a null pointer, we should add a little safety check; if (ifield == 0) { // The object is of a different type // Error reporting: // we forward the specific message to the ProgressReporter and return a // false to indicate that an error has occured. // The ProgressReporter returns the error message to the module window pr->error("ToPointCloud: Could not obtain input field"); return (false); } So far we got the pointer to the field. It is really useful to obtain the pointer to the mesh as well. To get a pointer to the specific mesh we use the function ''get_typed_mesh()''. In order to get the proper pointer definition we look into the field class where the type mesh_handle_type is defined. As the type consists of a templatename and the actual type defined inside the templated class we use ''typename'' to indicate to the compiler that FSRC::mesh_handle_type still needs to be parsed by specifying the actual template class. typename FSRC::mesh_handle_type imesh = ifield->get_typed_mesh(); if (imesh == 0) { pr->error("ToPointCloud: No mesh associated with input field"); return (false); } Now we have the pointers to the input mesh, we need to create an output mesh which is of the type of a PointCloud. A mesh is created as following: typename FDST::mesh_handle_type omesh = scinew typename FDST::mesh_type(); if (omesh == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } Note we use the following memory management strategy here: We store the pointer to the new mesh immediately into a mesh handle. Handles are smart pointers that automatically deallocate memory when the handle object is deallocated (unless the handle has been copied). Using handles to refer to new objects will make sure that, if we encounter an error in the code and we exit with a return (false), all memory will be freed automatically as the handle will be desrtoyed. The handle was not copied in that case and thus the object it is pointing to will be automatically destroyed. Now we need to implement the actual algorithm: We need to define iterators over the mesh, in this case they depend on the type of the mesh and have to be defined through the templated classes: typename FSRC::mesh_type::Node::iterator bn, en; typename FSRC::mesh_type::Node::size_type numnodes; imesh->begin(bn); // get begin iterator imesh->end(en); // get end iterator imesh->size(numnodes); // get the number of nodes in the mesh It is always good to preallocate memory if the number of nodes in the output mesh is known. omesh->node_reserve(numnodes); In the next loop the algorithm loops over all the nodes in the input mesh. It extracts the exact location of the point and then inserts the node into the output mesh. while (bn != en) { Point point; imesh->get_center(point, *bn); omesh->add_point(point); ++bn; } Now the new mesh has been created, the output field can be created. This output field can then be attached to the output FieldHandle. FDST *ofield = scinew FDST(omesh); output = ofield; if (ofield == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } The algorithm is completed by copying data from the nodes in the input field into the nodes of the output field. This copying is only done when the data is located at the nodes to begin with. In order to check whether the data is located at the nodes the ''basis_order()'' of the mesh is checked. // Make sure Fdata matches the size of the number of nodes ofield->resize_fdata(); // Is this a linear input field, if so we can copy data from node to node if (ifield->basis_order() == 1) { typename FSRC::fdata_type::iterator bid = ifield->fdata().begin(); typename FSRC::fdata_type::iterator eid = ifield->fdata().end(); typename FDST::fdata_type::iterator bod = ofield->fdata().begin(); while (bid != eid) { *bod = *bid; ++bod; ++bid; } } The algorithm is finished by copying the properties from the input field to the output field. output->copy_properties(input.get_rep()); // Success: return (true); } === The Base class === The base class is used to compile and access the templated algorithm. The base class contains the same function definition as the template class, however it is this function that is accessed from the rest of SCIRun. Internally it does generate the actual algorithm. The base class algorithm is defined in a .cc file and reads as follows: bool ToPointCloudAlgo::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { The first step is to test whether we received a valid field. A handle can point to no object and hence we need to discard this possibility. Using a null handle will cause the program to crash. Hence it is a good policy to check all incoming handles and to see whether they point to actual objects. if (input.get_rep() == 0) { // If we encounter a null pointer we return an error message and return to // the program to deal with this error. pr->error("ToPointCloud: No input field"); return (false); } The first thing this algorithm needs to do is to determine the type of the input fields and determine what type the output field should be. The ''FieldInformation'' is a helper class that will store all the names of all the components a field is made of. It takes a handle to a field and then determines what the actual type is of the field. As the current Field class has a variety of functions to query for its type the ''FieldInformation'' object will do this for you and will contain a summary of all the type information. // As the output field will be a variation on the input field we initialize // both with the input handle. FieldInformation fi(input); FieldInformation fo(input); Recent updates to the software allow for quadratic and cubic hermitian representations. However these methods have not fully been exposed yet. Hence the iterators in the field will not consider the information needed to define these non-linear elements. And hence although the algorithm may provide output for these cases and may not fail, the output is mathematically improper and hence for a proper implementation we have to wait until the mesh and field classes are fully completed. Using the ''FieldInformation'' class we can test whether the class is part of any of these newly defined non-linear classes. If so we return an error. if (fi.is_nonlinear()) { pr->error("ToPointCloud: This function has not yet been defined for non-linear elements yet"); return (false); } The other thing which we need to check is that in case the mesh is already a PointCloud, we only need to copy the input to the output. No algorithm is needed in this case. if (fi.get_mesh_type() == "PointCloudMesh") { output = input; return (true); } The algorithm now needs to define the output field type. This is done by modifying the ''FieldInformation''. By starting with the input field we can maintain properties like the datatype in which the data stored and only change the field class: fo.set_mesh_type("PointCloudMesh"); fo.set_mesh_basis_type("ConstantBasis"); if (fi.get_basis_type() == "ConstantBasis") { // Inform the user of some possible unintented consequence: pr->remark("Data is defined at the elements: hence removing the data from the field"); // Though we can still perform the operation fo.set_basis_type("NoDataBasis"); } The next step is to build the information structure for the dynamic compilation. The only object we need to build to perform a dynamic compilation is the ''CompileInfo''. This object is created and we use the handle to the object to pass the data structure around. The ''CompileInfo'' object contains the following information: The constructor needs the following information: # An unique filename descriptor which can used in the on-the-fly-libs directory. The ''FieldInformation'' object has a function that renders an unique name for each field type. The latter is combined with the name of the algorithm into a unique name for the dynamically compiled file. # The name of the base class # The name of the templated class without template descriptors # The template descriptors separated by commas The following code generates the ''CompileInfo'' object: SCIRun::CompileInfoHandle ci = scinew CompileInfo( "ALGOToPointCloud."+fi.get_field_filename()+"."+fo.get_field_filename()+".", "ToPointCloudAlgo","ToPointCloudAlgoT", fi.get_field_name() + "," + fo.get_field_name()); The dynamic algorithm will be created by writing a small piece of code in a .cc file. This file needs to know which file to include for the definitions of this algorithm. Using the function ''add_include'' includes can be added to the dynamically compiled code: ci->add_include(TypeDescription::cc_to_h(__FILE__)); This function is defined in the namespace SCIRunAlgo, add a statement 'using namespace SCIRunAlgo' to the dynamic file to be created: ci->add_namespace("SCIRunAlgo"); ci->add_namespace("SCIRun"); In order to be able to compile the dynamic code it needs to include the descriptions of the mesh/field classes. The following two statements will add the proper include files for both the input and output field types : fi.fill_compile_info(ci); fo.fill_compile_info(ci); The next step is to invoke the compiler to compile a piece of code. For the new algorithm we need to create an access point to the dynamically compiled algorithm. In order to do so we create a handle to the basis algorithm class. Note: this is currently a handle to the base class algorithm. SCIRun::Handle<ToPointCloudAlgo> algo; The next step is to call the ''compile()'' function using the ''CompileInfo'' to create the dynamically compiled piece of code and the Handle to the base algorithm, which will be overloaded with the actual algorithm. If the function is a success, the handle ''algo'' will point to the dynamically compiled algorithm. Since the access function is virtual, executing it will invoke the dynamic version. if(!(SCIRun::DynamicCompilation::compile(ci,algo,pr))) { // In case we detect an error: we forward the error to the user // The current system will take the filename of the file that failed to compile // It will display the error and dynamic file to the user, in the hope it // will tell something on what went wrong pr->compile_error(ci->filename_); // If compilation failed: remove file from on-the-fly-libs directory SCIRun::DynamicLoader::scirun_loader().cleanup_failed_compile(ci); return(false); } The final step is to invoke dynamic algorithm. return(algo->ToPointCloud(pr,input,output)); } Depending on whether dynamic algorithm fails or succeeds, false or true is returned. As error messages are reportered to the ProgressReporter we do not need to handle any error messages here, they automatically are forwarded to the user. 3825 1601 2006-11-02T05:53:54Z Jeroen 19 wikitext text/x-wiki ==Dynamic Compilation== ===Overview=== The current version of SCIRun supports a feature which we call dynamic compilation. Dynamic Compilation refers to the ability of compiling pieces of code while SCIRun is executing. This feature requires a compiler being available at run time. The reason for dynamically compiling code is the ability to optimize code for a particular model while SCIRun is being used to solve a particular problem. SCIRun makes extensive use of C++ templates. Templates are a powerful mechanism that allows writing algorithms or data structures once, while allowing them to be usable with many types of data. However, in order to use any particular type of data, the templates need to know about them at compile time. Dynamic compilation allows templates written in the past to be applied to new data types at run time by dynamically compiling code. Making this into a powerful feature. ===Creating a dynamically compiled algorithm=== The most common use for dynamic compilation is to create an algorithm that operates on the Field class. As the GenericField class is templated using three classes, an algorithm that operates on this class can consist out of a wide range of possible algorithms. Using dynamic compilation SCIRun compiles the proper algorithm when it knows by means of the user defined fields which algorithms to operate on. In this chapter creating a dynamic compiled algorithm is demonstrated by means of the ConvertToPointCloud algorithm. This algorithm takes a handle to field and extracts all the node locations from the mesh and returns a field that does not contain any elements anymore but only the actual node points that were part of the input field. The idea of a dynamically compiling class is the following: A general pointer to the Field is given to the algorithm, this is a pointer to the base class of the Field which is the same for all possible Field types. To discover what type it is a virtual function call into the Field is made revealing its true identity. This type information is used to compile a templated algorithm that uses the specific field type as a template argument. When the algorithm is compiled it will execute the algorithm. To create a dynamically compiling algorithm we start by defining to classes: a base class and a templated class derived from that. In this example the base class is called ConvertToPointCloudAlgo: This class contains the general access point for the dynamic compiled algorithm. It takes handles (pointers) to the Field base class. It will examine all the input arguments and determine which type the input Fields actually are. When this is known it will tell the dynamic compiler which algorithm needs to be compiled to carry out the operation with high efficiency. The second class is a template class called ToPointCloudAlgoT: This class is derived from the base class and has a similar call to the algorithm. This templated class contains the actual algorithm. When the dynamic compiler is invoked it will take in a handle to the base algorithm, internally it will overload this with the handle to an instatiation of the templated algorithm. Since the templated class will overload the access function of the base class with the one defined in the templated version using virtual function, one can now invoke the compiled algorithm by calling the access on the base class. The base class now defined as following: class ToPointCloudAlgo : public DynamicAlgoBase { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is the general access point to the dynamic algorithms in the class. The function ToPointCloud() is the access function to the dynamically compiled algorithm. It is a good practive to define the access functions to the dynamically compiled algorithms as following: virtual bool MyFunction(ProgressReporter* pr, FieldHandle input1, FieldHandle input2, ... FieldHandle& output) Here the algorithm returns false if it fails and true if it succeeds. In order to forward the error message all dynamic algorithms should take in a pointer to the current ProgressReporter. The ProgressReporter reports everything from the progress the algorithm made, to errors, remarks, warnings and is the general access point to forward messages to the user. Hence this algorithm can be used in a module as following: ToPointCloudAlgo algo; if(!(algo->ToPointCloud(this,input,output))) { // algorothm failed } Note that the module class has been derived from the ProgressReporter and hence the pointer to the module can be used to initialise the ProgressReporter. The second class called ToPointCloudAlgoT is the actual implementation of the algorithm. Note that the name of the algorithm ends with a 'T' to denote that the algorithm is templated (this is not strictly needed but improves readability if the code). The second class will look like this: template <class FSRC, class FDST> class ToPointCloudAlgoT : public ToPointCloudAlgo { public: virtual bool ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output); }; This class is templated according to the input and output field (FSRC, FDST). This means that the specific field class can be accessed by dynamic casting the input and output to the respective types. === The Templated class === Since the algorithm is templated, we need to define its implemenation in the header file. template <class FSRC, class FDST> bool ToPointCloudAlgoT<FSRC, FDST>::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { The first thing the algorithm should do is to cast the pointer contained in the input handle into a pointer of the proper type. Remember this part of the code is dynamically compiled and hence the class FSRC is of the type of the class behind pointer in input, where input only points to the base class. To access the derived class we need to dynamically cast this pointer into its actual type: FSRC *ifield = dynamic_cast<FSRC *>(input.get_rep()); In this example the function ''get_rep()'' gets the pointer contained in the handle. After getting the pointer it is a good habit to insert a safety check, to test whether we actually have a pointer. Although we should get the pointer, if something went wrong in the dynamic casting we get a zero pointer . As we do not want to use a null pointer, we should add a little safety check; if (ifield == 0) { // The object is of a different type // Error reporting: // we forward the specific message to the ProgressReporter and return a // false to indicate that an error has occured. // The ProgressReporter returns the error message to the module window pr->error("ToPointCloud: Could not obtain input field"); return (false); } So far we got the pointer to the field. It is really useful to obtain the pointer to the mesh as well. To get a pointer to the specific mesh we use the function ''get_typed_mesh()''. In order to get the proper pointer definition we look into the field class where the type mesh_handle_type is defined. As the type consists of a templatename and the actual type defined inside the templated class we use ''typename'' to indicate to the compiler that FSRC::mesh_handle_type still needs to be parsed by specifying the actual template class. typename FSRC::mesh_handle_type imesh = ifield->get_typed_mesh(); if (imesh == 0) { pr->error("ToPointCloud: No mesh associated with input field"); return (false); } Now we have the pointers to the input mesh, we need to create an output mesh which is of the type of a PointCloud. A mesh is created as following: typename FDST::mesh_handle_type omesh = scinew typename FDST::mesh_type(); if (omesh == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } Note we use the following memory management strategy here: We store the pointer to the new mesh immediately into a mesh handle. Handles are smart pointers that automatically deallocate memory when the handle object is deallocated (unless the handle has been copied). Using handles to refer to new objects will make sure that, if we encounter an error in the code and we exit with a return (false), all memory will be freed automatically as the handle will be desrtoyed. The handle was not copied in that case and thus the object it is pointing to will be automatically destroyed. Now we need to implement the actual algorithm: We need to define iterators over the mesh, in this case they depend on the type of the mesh and have to be defined through the templated classes: typename FSRC::mesh_type::Node::iterator bn, en; typename FSRC::mesh_type::Node::size_type numnodes; imesh->begin(bn); // get begin iterator imesh->end(en); // get end iterator imesh->size(numnodes); // get the number of nodes in the mesh It is always good to preallocate memory if the number of nodes in the output mesh is known. omesh->node_reserve(numnodes); In the next loop the algorithm loops over all the nodes in the input mesh. It extracts the exact location of the point and then inserts the node into the output mesh. while (bn != en) { Point point; imesh->get_center(point, *bn); omesh->add_point(point); ++bn; } Now the new mesh has been created, the output field can be created. This output field can then be attached to the output FieldHandle. FDST *ofield = scinew FDST(omesh); output = ofield; if (ofield == 0) { pr->error("ToPointCloud: Could not create output field"); return (false); } The algorithm is completed by copying data from the nodes in the input field into the nodes of the output field. This copying is only done when the data is located at the nodes to begin with. In order to check whether the data is located at the nodes the ''basis_order()'' of the mesh is checked. // Make sure Fdata matches the size of the number of nodes ofield->resize_fdata(); // Is this a linear input field, if so we can copy data from node to node if (ifield->basis_order() == 1) { typename FSRC::fdata_type::iterator bid = ifield->fdata().begin(); typename FSRC::fdata_type::iterator eid = ifield->fdata().end(); typename FDST::fdata_type::iterator bod = ofield->fdata().begin(); while (bid != eid) { *bod = *bid; ++bod; ++bid; } } The algorithm is finished by copying the properties from the input field to the output field. output->copy_properties(input.get_rep()); // Success: return (true); } === The Base class === The base class is used to compile and access the templated algorithm. The base class contains the same function definition as the template class, however it is this function that is accessed from the rest of SCIRun. Internally it does generate the actual algorithm. The base class algorithm is defined in a .cc file and reads as follows: bool ToPointCloudAlgo::ToPointCloud(ProgressReporter *pr, FieldHandle input, FieldHandle& output) { The first step is to test whether we received a valid field. A handle can point to no object and hence we need to discard this possibility. Using a null handle will cause the program to crash. Hence it is a good policy to check all incoming handles and to see whether they point to actual objects. if (input.get_rep() == 0) { // If we encounter a null pointer we return an error message and return to // the program to deal with this error. pr->error("ToPointCloud: No input field"); return (false); } The first thing this algorithm needs to do is to determine the type of the input fields and determine what type the output field should be. The ''FieldInformation'' is a helper class that will store all the names of all the components a field is made of. It takes a handle to a field and then determines what the actual type is of the field. As the current Field class has a variety of functions to query for its type the ''FieldInformation'' object will do this for you and will contain a summary of all the type information. // As the output field will be a variation on the input field we initialize // both with the input handle. FieldInformation fi(input); FieldInformation fo(input); Recent updates to the software allow for quadratic and cubic hermitian representations. However these methods have not fully been exposed yet. Hence the iterators in the field will not consider the information needed to define these non-linear elements. And hence although the algorithm may provide output for these cases and may not fail, the output is mathematically improper and hence for a proper implementation we have to wait until the mesh and field classes are fully completed. Using the ''FieldInformation'' class we can test whether the class is part of any of these newly defined non-linear classes. If so we return an error. if (fi.is_nonlinear()) { pr->error("ToPointCloud: This function has not yet been defined for non-linear elements yet"); return (false); } The other thing which we need to check is that in case the mesh is already a PointCloud, we only need to copy the input to the output. No algorithm is needed in this case. if (fi.get_mesh_type() == "PointCloudMesh") { output = input; return (true); } The algorithm now needs to define the output field type. This is done by modifying the ''FieldInformation''. By starting with the input field we can maintain properties like the datatype in which the data stored and only change the field class: fo.set_mesh_type("PointCloudMesh"); fo.set_mesh_basis_type("ConstantBasis"); if (fi.get_basis_type() == "ConstantBasis") { // Inform the user of some possible unintented consequence: pr->remark("Data is defined at the elements: hence removing the data from the field"); // Though we can still perform the operation fo.set_basis_type("NoDataBasis"); } The next step is to build the information structure for the dynamic compilation. The only object we need to build to perform a dynamic compilation is the ''CompileInfo''. This object is created and we use the handle to the object to pass the data structure around. The ''CompileInfo'' object contains the following information: The constructor needs the following information: # An unique filename descriptor which can used in the on-the-fly-libs directory. The ''FieldInformation'' object has a function that renders an unique name for each field type. The latter is combined with the name of the algorithm into a unique name for the dynamically compiled file. # The name of the base class # The name of the templated class without template descriptors # The template descriptors separated by commas The following code generates the ''CompileInfo'' object: SCIRun::CompileInfoHandle ci = scinew CompileInfo( "ALGOToPointCloud."+fi.get_field_filename()+"."+fo.get_field_filename()+".", "ToPointCloudAlgo","ToPointCloudAlgoT", fi.get_field_name() + "," + fo.get_field_name()); The dynamic algorithm will be created by writing a small piece of code in a .cc file. This file needs to know which file to include for the definitions of this algorithm. Using the function ''add_include'' includes can be added to the dynamically compiled code: ci->add_include(TypeDescription::cc_to_h(__FILE__)); This function is defined in the namespace SCIRunAlgo, add a statement 'using namespace SCIRunAlgo' to the dynamic file to be created: ci->add_namespace("SCIRunAlgo"); ci->add_namespace("SCIRun"); In order to be able to compile the dynamic code it needs to include the descriptions of the mesh/field classes. The following two statements will add the proper include files for both the input and output field types : fi.fill_compile_info(ci); fo.fill_compile_info(ci); The next step is to invoke the compiler to compile a piece of code. For the new algorithm we need to create an access point to the dynamically compiled algorithm. In order to do so we create a handle to the basis algorithm class. Note: this is currently a handle to the base class algorithm. SCIRun::Handle<ToPointCloudAlgo> algo; The next step is to call the ''compile()'' function using the ''CompileInfo'' to create the dynamically compiled piece of code and the Handle to the base algorithm, which will be overloaded with the actual algorithm. If the function is a success, the handle ''algo'' will point to the dynamically compiled algorithm. Since the access function is virtual, executing it will invoke the dynamic version. if(!(SCIRun::DynamicCompilation::compile(ci,algo,pr))) { // In case we detect an error: we forward the error to the user // The current system will take the filename of the file that failed to compile // It will display the error and dynamic file to the user, in the hope it // will tell something on what went wrong pr->compile_error(ci->filename_); // If compilation failed: remove file from on-the-fly-libs directory SCIRun::DynamicLoader::scirun_loader().cleanup_failed_compile(ci); return(false); } The final step is to invoke dynamic algorithm. return(algo->ToPointCloud(pr,input,output)); } Depending on whether dynamic algorithm fails or succeeds, false or true is returned. As error messages are reportered to the ProgressReporter we do not need to handle any error messages here, they automatically are forwarded to the user. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:InterfaceToTCL 0 1684 1603 2006-11-02T06:01:12Z Jeroen 19 wikitext text/x-wiki ==Interface to TCL== This chapter describes how to easily communicate between the GUI (Tcl/Tk) and the C++ elements of SCIRun modules. ===Introduction=== SCIRun uses TCL/TK as its GUI font end. However, the TCL/TK was not designed with a clean interface between TCL code and C/C++. The purpose of this directory is to provide an abstraction layer between the two and make the task of moving data between the TCL and the C++ portions of SCIRun transparent to the user. Most of the code in the Dataflow/GuiInterface directory is used internally in SCIRun. The only exception are the GuiVars which can be access from both the tcl and the C++ codes. These variables provide a transparent mechanism in C++ to set or get the tcl variables they represent. Each such tcl variable is associated with a Module and thus contains information about the module tcl id and a pointer to the module. ===Programming with the SCIRun GuiInterface=== On the TCL side, the code should access the variables as regular tcl variables. On the C++ side, the code needs to declare these variables inside a Module and access them via the get() and set() functions. '''GuiVar''' GuiVars are variables that encapsulate the interaction between the C++ code and the GUI (Graphical User Interface) code. The variable does not hold the actual value, rather it holds information which is used to access the corresponding variable on the GUI side. From the C++ side the user may set the variable value via a set() function and retrieve the value via a get() function. There are several specialization of GuiVar for particular variable types such as GuiInt, GuiString and GuiPoint. In a tcl code, i.e. in a tcl module: itcl_class foo { ... method set_defaults {} { global $this-min global $this-max set $this-min 0 # set to 0 set $this-max [set $this-min] # '[set $this-var]' returns its value } ... } In the C++ side, i.e. in a module: class Demo : public Module { ... GuiInt gui_min, gui_max; // define GUI variables Demo( const clString& id ); void init(); }; Demo::Demo( const clString &id ) : Module(...), gui_min("min",id, this), // initialize a variable with gui_max("max",id,this) // its name on the tcl side. { ... } void Demo::init() { gui_min.set(7); // set a tcl variable int i = gui_max.get(); // get a value from the tcl side } 3826 1603 2006-11-02T06:02:18Z Jeroen 19 wikitext text/x-wiki ==Interface to TCL== This chapter describes how to easily communicate between the GUI (Tcl/Tk) and the C++ elements of SCIRun modules. ===Introduction=== SCIRun uses TCL/TK as its GUI font end. However, the TCL/TK was not designed with a clean interface between TCL code and C/C++. The purpose of this directory is to provide an abstraction layer between the two and make the task of moving data between the TCL and the C++ portions of SCIRun transparent to the user. Most of the code in the Dataflow/GuiInterface directory is used internally in SCIRun. The only exception are the GuiVars which can be access from both the tcl and the C++ codes. These variables provide a transparent mechanism in C++ to set or get the tcl variables they represent. Each such tcl variable is associated with a Module and thus contains information about the module tcl id and a pointer to the module. ===Programming with the SCIRun GuiInterface=== On the TCL side, the code should access the variables as regular tcl variables. On the C++ side, the code needs to declare these variables inside a Module and access them via the get() and set() functions. '''GuiVar''' GuiVars are variables that encapsulate the interaction between the C++ code and the GUI (Graphical User Interface) code. The variable does not hold the actual value, rather it holds information which is used to access the corresponding variable on the GUI side. From the C++ side the user may set the variable value via a set() function and retrieve the value via a get() function. There are several specialization of GuiVar for particular variable types such as GuiInt, GuiString and GuiPoint. In a tcl code, i.e. in a tcl module: itcl_class foo { ... method set_defaults {} { global $this-min global $this-max set $this-min 0 # set to 0 set $this-max [set $this-min] # '[set $this-var]' returns its value } ... } In the C++ side, i.e. in a module: class Demo : public Module { ... GuiInt gui_min, gui_max; // define GUI variables Demo( const clString& id ); void init(); }; Demo::Demo( const clString &id ) : Module(...), gui_min("min",id, this), // initialize a variable with gui_max("max",id,this) // its name on the tcl side. { ... } void Demo::init() { gui_min.set(7); // set a tcl variable int i = gui_max.get(); // get a value from the tcl side } ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:MemoryManagement 0 1685 1610 2006-11-02T06:10:48Z Jeroen 19 wikitext text/x-wiki ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:PersistentIO 0 1686 1611 2006-11-02T06:11:02Z Jeroen 19 wikitext text/x-wiki ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:CostumTkWidgets 0 1687 1612 2006-11-02T06:11:15Z Jeroen 19 wikitext text/x-wiki ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:Utilities 0 1688 1608 2006-11-02T06:11:27Z Jeroen 19 wikitext text/x-wiki ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] 1609 1608 2006-11-02T06:24:09Z Jeroen 19 wikitext text/x-wiki ==SCIRun Utilities== This chapter describes some simple utilities available in SCIRun. ===Introduction=== The Core/Util directory is a miscellaneous collection of code. The code can be classified into 3 groups: debugging tools, timing routines, and SCIRun internal code. The debugging tools and timing routines are generally useful. The SCIRun internal code is not. The SCIRun internal code consists of routines for accessing shared libraries and work arounds of bugs on Linux platforms. ===Programming with SCIRun Utilities=== Use the the debugging and timing tools when developing any kind of code. Use the debugging tools to specify data invariants, catch programming errors, and log messages during program execution. The timer tools can be used to analyze code bottlenecks and perform other timing tasks. ====Assertion==== Assertions have 2 (related) uses. They are used to catch programming errors and they may used to make promises between a routine and its caller, i.e. "If you the caller send me data that does not violate my assertion(s) then I, the routine, promise to do the right thing by you." Assertions express a set of valid states a data object (or objects) may possess at some point in the code. If a piece of data is not in a valid state, i.e. it violates the assertion, then the assertion will catch this violation, report the violation, and perhaps terminate the program. SCIRun supports a number of assertion styles which can be found in Assert.h and FancyAssert.h. Here are a few examples: Ensure that the variable 'n' is greater than 0: ASSERT(n < 0); Ensure that 'a' is equal to 999: ASSERTEQ(a, 999); Other examples: ASSERTNE(a, 0); ASSERTRANGE(a, 0.0, 1.0); ====Timer==== A Timer keeps track of time. Class Timer is an abstract base class - you can't create a Timer object. But you can create objects of the derived types CPUTimer, WallClockTimer, and TimeThrottle. These all provide the functions start(), stop(), clear(), time(), and add(). A TimeThrottle also provides the function wait_for_time(). Functions common to all timers are: start() starts or resumes a timer. stop() stops a timer. It does not clear accumulated time. The timer may be resumed with start(). clear() sets the timer's accumulated time to 0. clear() may be executed while a timer is running (although a warning will be written to std error). time() returns the timer's accumulated time. It may be executed while the timer is running or stopped. add(double t) adds t seconds to the current elapsed time. Individual timer types are discussed next. ====CPUTimer==== CPUTimer records the elasped CPU time (seconds) used by the calling process (including system CPU time used on behalf of the calling process). Example use of a CPUTimer: CPUTimer cpuTimer; cpuTimer.start(); for (i =0; i<3; ++i) { . . . } cpuTimer.stop(); std::cout << "Loop used " << cpuTimer.time() << " seconds of cpu" << endl; ====WallClockTimer==== WallClockTimer records elasped real time (seconds). Example use of a WallClockTimer: WallClockTimer wcTimer; wcTimer.start(); for (i =0; i<3; ++i) { . . . } wcTimer.stop(); std::cout << "Loop used " << wcTimer.time() << " seconds of real time" << endl; ====TimeThrottle==== TimeThrottle is a WallClockTimer with the added function wait_for_time(). wait_for_time(double endtime) will suspend the calling thread until the given endtime (seconds) has elapsed. This function is only implemented on SGI systems. Example use of a TimeThrottle: TimeThrottle timeThrottle; timeThrottle.start(); double startTime = timeThrottle.time(); // Start doing stuff. . . . // Make sure that not less than 1 second has elapsed since we started // doing stuff. timeThrottle.wait_for_time(startTime + 1); ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] 3830 1609 2006-11-02T06:24:32Z Jeroen 19 /* SCIRun Utilities */ wikitext text/x-wiki ==SCIRun Utilities== This chapter describes some simple utilities available in SCIRun. ===Introduction=== The Core/Util directory is a miscellaneous collection of code. The code can be classified into 3 groups: debugging tools, timing routines, and SCIRun internal code. The debugging tools and timing routines are generally useful. The SCIRun internal code is not. The SCIRun internal code consists of routines for accessing shared libraries and work arounds of bugs on Linux platforms. ===Programming with SCIRun Utilities=== Use the the debugging and timing tools when developing any kind of code. Use the debugging tools to specify data invariants, catch programming errors, and log messages during program execution. The timer tools can be used to analyze code bottlenecks and perform other timing tasks. ====Assertion==== Assertions have 2 (related) uses. They are used to catch programming errors and they may used to make promises between a routine and its caller, i.e. "If you the caller send me data that does not violate my assertion(s) then I, the routine, promise to do the right thing by you." Assertions express a set of valid states a data object (or objects) may possess at some point in the code. If a piece of data is not in a valid state, i.e. it violates the assertion, then the assertion will catch this violation, report the violation, and perhaps terminate the program. SCIRun supports a number of assertion styles which can be found in Assert.h and FancyAssert.h. Here are a few examples: Ensure that the variable 'n' is greater than 0: ASSERT(n < 0); Ensure that 'a' is equal to 999: ASSERTEQ(a, 999); Other examples: ASSERTNE(a, 0); ASSERTRANGE(a, 0.0, 1.0); ====Timer==== A Timer keeps track of time. Class Timer is an abstract base class - you can't create a Timer object. But you can create objects of the derived types CPUTimer, WallClockTimer, and TimeThrottle. These all provide the functions start(), stop(), clear(), time(), and add(). A TimeThrottle also provides the function wait_for_time(). Functions common to all timers are: start() starts or resumes a timer. stop() stops a timer. It does not clear accumulated time. The timer may be resumed with start(). clear() sets the timer's accumulated time to 0. clear() may be executed while a timer is running (although a warning will be written to std error). time() returns the timer's accumulated time. It may be executed while the timer is running or stopped. add(double t) adds t seconds to the current elapsed time. Individual timer types are discussed next. ====CPUTimer==== CPUTimer records the elasped CPU time (seconds) used by the calling process (including system CPU time used on behalf of the calling process). Example use of a CPUTimer: CPUTimer cpuTimer; cpuTimer.start(); for (i =0; i<3; ++i) { . . . } cpuTimer.stop(); std::cout << "Loop used " << cpuTimer.time() << " seconds of cpu" << endl; ====WallClockTimer==== WallClockTimer records elasped real time (seconds). Example use of a WallClockTimer: WallClockTimer wcTimer; wcTimer.start(); for (i =0; i<3; ++i) { . . . } wcTimer.stop(); std::cout << "Loop used " << wcTimer.time() << " seconds of real time" << endl; ====TimeThrottle==== TimeThrottle is a WallClockTimer with the added function wait_for_time(). wait_for_time(double endtime) will suspend the calling thread until the given endtime (seconds) has elapsed. This function is only implemented on SGI systems. Example use of a TimeThrottle: TimeThrottle timeThrottle; timeThrottle.start(); double startTime = timeThrottle.time(); // Start doing stuff. . . . // Make sure that not less than 1 second has elapsed since we started // doing stuff. timeThrottle.wait_for_time(startTime + 1); ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:Exceptions 0 1689 1607 2006-11-02T06:11:40Z Jeroen 19 wikitext text/x-wiki ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] 1613 1607 2006-11-02T06:17:19Z Jeroen 19 wikitext text/x-wiki ==SCIRun Exceptions== This chapter explains SCIRun exceptions. ===Introduction=== The Exceptions directory contains common exceptions and the Exception base class. Developers can create new exception classes, and these will need to be in other directories if they depend on other data structures outside of the Exception dir. All exceptions in SCIRun are derived from the SCIRun::Exception base class. All derived classes implement a message method and a type method. The type method just returns a string (const char* actually) that indicates the classname of the exception. The message returns a human readable string that can be printed out when the exception is caught. This directory also contains some general exceptions used throughout SCIRun. *AssertionFailed - thrown when an assertion fails. *ArrayIndexOutOfBounds - thrown to indicate a failed bounds check. *DimensionMismatch - thrown to indicate dimensionality differences. *FileNotFound - thrown when a file is not found. *InternalError - thrown when an internal error occurs. ===Programming with SCIRun Exceptions=== A developer is likely to use this code from within written modules as well as within new datatypes. A couple development specific hints follow. All exception classes must implement a copy constructor (for some compilers). On the SGI, the exception classes will give you a stacktrace when they are caught (uses -lexc). Exceptions in SCIRun, are only to be used for exceptional cases. General error handling should use another mechanism. Exceptions are expensive, and as such should only be used in cases that warrant it. One of the most common uses in this directory are ASSERT, and ASSERTFAIL. ===ASSERT=== This is used to verify that some condition is true before continuing. if the expression geven evaluates to false, the exception is thrown, which will eventually abort scirun. This macro expands to nothing in an optimized build. myClass *p = get_my_class(); ASSERT(p != 0); p->do_something(); ===ASSERTFAIL=== This is used to abort with a nice message when something is wrong. This macro expands to nothing in an optimized build. switch(var) { case NICE: ... break; case EVEN_NICER: ... break; default: ASSERTFAIL("Unknown case, what happened?"); } ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:WidgetsAndConstraints 0 1690 1606 2006-11-02T06:11:50Z Jeroen 19 wikitext text/x-wiki ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] 3832 1606 2006-11-02T06:13:35Z Jeroen 19 wikitext text/x-wiki ==3D Widgets and Constraints in SCIRun== This section introduces the concepts of 3D widgets and the Constraints used to make them functional. ===Introduction=== SCIRun has a set of 3D interaction widgets. These widgets have a graphical representation within the scene graph of the Viewer module, and can be directly manipulated within a visualization. Furthermore, the module that creates a widget maintains access to and control of the widget, and is alerted through a callback when a widget is manipulated within a scence. Through this callback mechanism, the module can respond appropriately as the widget interaction is taking place - thereby allowing compuational feedback to be directly coupled with the visual feedback. Widgets are useful in any context where direct manipulation has clear advantages over indirect manipulation. For example, when specifying a cutting plane for a scene, it is possible to specify that plane by entering the A, B, C, and D of a plane equation (Ax + By + Cz + D = 0) with sliders or text-entry boxes; however, it is often much more natural to place a graphical representation of that plane (for example, a rectangular frame widget) into the scene and provide the user handles to translate and rotate the clipping plane directly. By manipulating the object directly, a greater sense of immersion is obtained, and the user has a more natural mechanism for setting parameters. One important aspect of 3D widgets in SCIRun is the notion of Constraints. Constraints are used to ensure that the user will not introduce degenerate situations when providing input to SCIRun. For example, with the DistanceConstraint, two points are constrained to be a fixed distance apart. If one point moves to a new location, the other point must be moved in order to maintain that constraint. Some of the simpler constraints are solved using direct methods, while more complex constraints are solved using interative methods. While the primary use for constraints within SCIRun is to provide robust 3D widgets, it doesn't preclude their use in other situations where constraints may be needed, such as in modeling particle interactions in a finite element simulation. ===Programming 3D Widgets=== Widgets should be constructed within the module that will be using them, and should be sent to a Viewer module through a Geom outport. The developer should implement the virtual get_pick() method for their module if they want catch the callbacks when the widget is manipulated. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:MemoryManagement 0 1685 3827 1610 2006-11-02T06:30:12Z Jeroen 19 wikitext text/x-wiki ==SCIRun Memory Management== This chapter explains how and why SCIRun manages memory usage. ===Introduction=== The SCIRun memory allocation and tracking system is defined in Core/Malloc. This system is an abstracted layer built upon the normal memory management tools provided in C/C++. At one point or another, most programs run into problems with dynamically allocated memory such as stray pointers and memory leakage. Because SCIRun is a large and complex collection of core routines as well as a framework for the creation and use of user modules (used to extend its base functionality,) it is important to be able to track the allocation and usage of memory. SCIRun provides a transparent, non-invasive method of tracking memory usage. By overloading the basic C memory management routines (malloc, free, calloc, realloc, memalign, and valloc) as well as the C++ routines (new and delete,) SCIRun can record and monitor the allocation of memory throughout the system. This makes it much easier to perform two very important functions: 1) Know where memory was allocated, and thus, if appropriate, where it was not freed, and 2) easily track the amount of memory being used by the entire system. Core/Malloc provides one other important benefit: Memory allocation can be, and often is, faster because of the smarter algorithms it uses. ===Programming with SCIRun Memory Management=== For the reasons mentioned above, it is important for developers to use the Core/Malloc routines in order for themselves or others to localize and fix and memory problems encountered when using SCIRun. Anytime a developer needs to allocate memory, he or she should use the Core/Malloc routines, thereby receiving for free, the ability to track memory usage. The important thing to note is that the developer need only do one thing to make this happen: Use the SCIRun macro "scinew" anywhere he or she would normally use "new". Because "scinew" is a macro, it can be easily configured to allow the default "new" to be used when desired. Environment Variables The following environment variables can be set in order to help monitor and control the allocation of memory. The environment variables are only used if DISABLE_SCI_MALLOC is NOT defined during compilation. If DISABLE_SCI_MALLOC is defined, then SCIRun will use the built in new, free, alloc, etc. MALLOC_STRICT: Places markers in unused memory and uses them to verify memory integrity. Unless you wish to check memory integrity explicitly using the "audit()" function, MALLOC_LAZY should NOT be set. MALLOC_LAZY: By default, memory is audited for problems on each allocation and deallocation. If MALLOC_LAZY is set, then auditing is turned off. This can speed up code that allocates and deallocates memory frequently. MALLOC_TRACE [filename]: If MALLOC_TRACE is set, then every memory allocation, reallocation, and deallocation will be logged. If "filename" is not provided, this information will be printed to "stderr". MALLOC_STATS [filename]: If MALLOC_STATS is set, when SCIRun exits, it will output a list of statistics regarding memory usage during the run. This includes the number of alloc/free calls, the amount of fragmentation, the amount of memory that is free and that is in use, etc. If "filename" is not provided, then "stderr" is used. ===Overloaded Functions=== The following memory management functions are overloaded to allow Core/Malloc to provide memory management functionality: C Functions: void* malloc(size_t size); void free(void* ptr); void* calloc(size_t n, size_t s); void* realloc(void* p, size_t s); void* memalign(size_t alignment, size_t size); void* valloc(size_t size); C++ Functions: void* operator new(size_t, SCIRun::Allocator*, char*); void* operator new[](size_t, SCIRun::Allocator*, char*); #define scinew new(SCIRun::default_allocator, __FILE__) To take advantage of the SCIRun memory management utilities provided by Core/Malloc, you should do the following: *Make sure that DISABLE_SCI_MALLOC is not set. *Allocate memory using the following syntax (This can be transparently done by changing every "new" to "scinew"): int * int_array = scinew int[ 128 ]; Object * obj = scinew Object(); *Delete objects as normal: delete int_array[]; delete obj; ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:PersistentIO 0 1686 3828 1611 2006-11-02T06:36:30Z Jeroen 19 wikitext text/x-wiki ==Persistent IO== This chapter explains how SCIRun reads and writes data to and from streams. ===Introduction=== To maximize their usefulness, all software systems must be able to store data to disk at the end of execution, and retrieve that data later for additional processing. As the SW system becomes larger and more complex, especially if numerous different groups are contributing to it, there needs to be a consistent, powerful, and straight forward strategy for performing this data storage and retrieval. Core/Persistent encapsulates the SCIRun data storage and retrieval philosophy which attempts to provide such a solution to this problem. Core/Persistent provides a direct and uniform method for saving to disk the complex data structures used by SCIRun. Through its use, a user can save and later retrieve data that is distributed across a large number of classes and sub-classes, and need not worry about manually handling dynamically allocated (and possibly cross referenced) memory. ===Programming with SCIRun Persistent data=== Because most of the code added to SCIRun will use a large number of complex SCIRun data structures, it is necessary for the developer to be able to manage storing data in a consistent manner. Core/Persistent provides this ability by specifying a set of routines that are implemented by each of the SCIRun data structures. It also allows the user to implement these routines in his or her code and thus have a complete and consistent method of storing and retrieving data. Many module implementors will need to include routines in their module for saving to and retrieve data from disk. Software engineers who develop parts of the SCIRun core will also many times need to add routines to provide the IO for these Core codes. By using Core/Persistent, programmers will be able to easily define routines to save the data specifically created by their codes as well as save the data stored in any of the SCIRun data structures that they use. Specifically, programmers will, for the most part, use the Core/Persistent paradigm in "Datatypes" files. Programmers are also encouraged to use Core/Persistent for their own data structures for two reasons: 1) If their data structure is every used by other people (migrated to the "Datatypes" directory) then it will need to use Persistent. 2) Using Core/Persistent encourages the implementor to consider and provide for the ability to handle multiple "versions" of data files, transparently to the rest of the code. ====Persistent Data==== Persistent Data is a general term for any data that will at some point need to be written to disk, and then, later, read back in for further processing. ====Persistent Object==== A Persistent Object is a specific instance of "Persistent Data" and include all SCIRun datatypes that have been subclassed from the Persistent class. (Classes found in Core/Datatypes usually inherit from Class Datatype, which in turn inherits from Persistent.) Persistent Objects have the ability to save and restore themselves from disk. The data is stored on disk by specifying the "type" of object that created the data and version of that object. ====PersistentTypeID==== Each "Persistent Object" has an unique "type id". This type id allows SCIRun to load the object back from disk by first, creating a "new" object of this type, and then telling the object to load its data. "PersistentTypeID"s consist of a string representing the type (similar to the C++ character string that specifies the type), the parent class of the object, and the "maker" function that will be used to create new objects of this type. For templated types, the "type_name()" function is implemented. This function turns, for example, the type vector<int>, into the string, "vector<int>". ====Maker Functions==== Maker functions are used to created a new Persistent Object. They are very straight forward consisting of code that allocates an object and then returns a pointer to the object. ====Pio Streams==== Pio Streams are used by Persistent Objects to read/write data from/to disk. There are several types of Pio Streams, all of which inherit from the base class Piostream. The subclasses of Piostream are: BinaryPiostream, TextPiostream, and GzipPiostream. These correspond to binary output, text output, and zipped output. (The type of output is usually set by the user at the time the data is to be written out.) ====Pio() versus io()==== Every persistent object has an a member function (and thus needs to implement) the io() function. This function (an example is given below) implements the saving and loading of the data unique to that object. The Pio() functions are not member functions. They are defined for all data types and simply are used to start the saving of the data (see below.) ===Examples=== In order to make a 'Datatype' (or any data structure for that matter) persistent, you must follow these steps: *Inherit from class Persistent (or from class Datatype.) *Add the following to your class: void io(Piostream &stream); static PersistentTypeID type_id; static const string type_name(int n = -1); virtual const string get_type_name(int n = -1) const; private: static Persistent *maker(); To save a persistent object, you simply create a persistent stream: Piostream * stream = auto_istream( file_name ); Then you call the Pio function for the object, with the stream: Pio( *stream, object ); The Pio() function will use the io() function provided by (or, in the case of built in types, provided for) the type. All Persistent objects need to define their current version: // Pio defs. const int MY_CLASS_VERSION = 1; The version information can be used to successfully read in old data files. Various "new" object data members can be defaulted to a reasonable value for these old data files. All Persistent objects must implement the io() function. This is the function that will be called by Pio() to save/load the object. This is an example io() function: void MyClass::io( Piostream & stream ) { // All input/ouptut starts with this line: #IF THERE IS MORE THAN ONE VERSION int version = stream.begin_class("ColorMap", MY_CLASS_VERSION); #ELSE IF YOU ONLY HAVE ONE VERSION CURRENTLY stream.begin_class( type_name().c_str(), MY_CLASS_VERSION ); // Save/Load Base Class fields first: MyBaseClass::io( stream ); if( version > 1 ) { Pio( stream, new_data_field_ ); } // Save/Load individual fields: Pio( stream, my_data_ ); Pio( stream, more_data_ ); // All input/output ends with this line: stream.end_class(); } ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:CostumTkWidgets 0 1687 3829 1612 2006-11-02T06:40:25Z Jeroen 19 wikitext text/x-wiki ==Custom Tk Widgets== This chapter describes extensions made to Tk by SCIRun to provide for custom widgets. ===Introduction=== The main purpose of this directory is provide additional GUI component that are needed by SCIRun but are not provided by Tk nor are easily implemented (if at all) in native TclTk. These extensions include support for an OpenGL window, three dimension look and feel and moving the cursor to a specified window. These extensions are implemented here in C++ and are added to the Tk built in commands in the initialization stage. There are three components to this interface: Initialization, extensions and a hack of the Tk internals. GUI extensions to Tk should be implemented here and added to the Tk built in commands via the initialization in tkAppInit.c A special attention should be given to the tclUnixNotify-*.c files. These files are a hack of a similar file internal to Tk. Their purpose is to enable Tk to work in a multithreaded environment even though it was not designed to do so. Since the corresponding file in the Tk distribution changes between different versions of Tk we have included a modified version for the two versions of Tk that are supported by SCIRun, namely 8.0.4 and 8.3 . The code in this directory is meant to be used only via the tcl commands that it provides. Any tcl code can call these commands to create the GUI they provide. ===Tk command=== Tk provides a set of builtin GUI commands. One can augment them by providing additional functions written in C++ (or C). These additional functions can interface the TCL/TK system via C function calls as describe in the TCL/TK documentation. ===tkOpenGL=== A Tk window that embodies an OpenGL window. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Documentation:SCIRun:DevManual:Exceptions 0 1689 3831 1613 2006-11-02T06:41:28Z Jeroen 19 wikitext text/x-wiki ==SCIRun Exceptions== This section explains SCIRun exceptions. ===Introduction=== The Exceptions directory contains common exceptions and the Exception base class. Developers can create new exception classes, and these will need to be in other directories if they depend on other data structures outside of the Exception dir. All exceptions in SCIRun are derived from the SCIRun::Exception base class. All derived classes implement a message method and a type method. The type method just returns a string (const char* actually) that indicates the classname of the exception. The message returns a human readable string that can be printed out when the exception is caught. This directory also contains some general exceptions used throughout SCIRun. *AssertionFailed - thrown when an assertion fails. *ArrayIndexOutOfBounds - thrown to indicate a failed bounds check. *DimensionMismatch - thrown to indicate dimensionality differences. *FileNotFound - thrown when a file is not found. *InternalError - thrown when an internal error occurs. ===Programming with SCIRun Exceptions=== A developer is likely to use this code from within written modules as well as within new datatypes. A couple development specific hints follow. All exception classes must implement a copy constructor (for some compilers). On the SGI, the exception classes will give you a stacktrace when they are caught (uses -lexc). Exceptions in SCIRun, are only to be used for exceptional cases. General error handling should use another mechanism. Exceptions are expensive, and as such should only be used in cases that warrant it. One of the most common uses in this directory are ASSERT, and ASSERTFAIL. ===ASSERT=== This is used to verify that some condition is true before continuing. if the expression geven evaluates to false, the exception is thrown, which will eventually abort scirun. This macro expands to nothing in an optimized build. myClass *p = get_my_class(); ASSERT(p != 0); p->do_something(); ===ASSERTFAIL=== This is used to abort with a nice message when something is wrong. This macro expands to nothing in an optimized build. switch(var) { case NICE: ... break; case EVEN_NICER: ... break; default: ASSERTFAIL("Unknown case, what happened?"); } ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:DevManual|DevManual]] CIBC:Project:NCMIR 0 1061 1616 1614 2006-11-02T16:13:42Z Cates 4 /* Design */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Seg3D Concept === * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in Layers * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to Filters (ITK or other) * Filter output is piped back into a new Layer * Any number of Label Layers may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === LeXoV Engine === === Ontology-guided Contouring === 1617 1616 2006-11-02T16:29:38Z Cates 4 /* Design */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Seg3D Concept === * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in Layers * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to Filters (ITK or other) * Filter output is piped back into a new Layer * Any number of Label Layers may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. [[Image:dataflow.png|left|thumb|Diagram describing dataflow in the app.]] === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) === Ontology-guided Contouring === 1618 1617 2006-11-02T16:29:55Z Cates 4 /* Design */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Seg3D Concept === * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in Layers * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to Filters (ITK or other) * Filter output is piped back into a new Layer * Any number of Label Layers may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) === Ontology-guided Contouring === 1619 1618 2006-11-02T16:43:33Z Cates 4 /* Design */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon 1620 1619 2006-11-02T16:45:21Z Cates 4 /* Design */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: Mac, Linux, Windows (coming soon) 1621 1620 2006-11-02T16:46:12Z Cates 4 /* LeXoV Engine */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features four-dimensional ($XYZ + time$) navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool also includes powerful higher-dimensional image processing and segmentation algorithms from ITK filters including isotropic and anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, watershed segmentation, and level-set segmentation algorithms. We are also working to add automatic image registration methods from ITK. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) 1622 1621 2006-11-02T16:55:58Z Cates 4 /* Overview */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Reusable: Only requires OpenGL context * Event capture and replay == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) 1623 1622 2006-11-02T16:57:10Z Cates 4 /* Features */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Event capture and replay (''not currently enabled'') == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) 1624 1623 2006-11-02T16:58:07Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Event capture and replay (''not currently enabled'') == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1625 1624 2006-11-02T17:02:54Z Cates 4 /* Design */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Event capture and replay (''not currently enabled'') == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port available courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1627 1625 2006-11-02T17:04:40Z Cates 4 /* Notes */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Event capture and replay (''not currently enabled'') == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1628 1627 2006-11-02T17:50:06Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1629 1628 2006-11-02T18:27:47Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload == Screen Shots == [[Image:biopainter.png|left|thumb|Early development 2006]] [[Image:Screenshot08.png|left|thumb|August 2006]] [[Image:Screenshot10.png|left|thumb|August 2006]] <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1630 1629 2006-11-02T20:53:47Z Cates 4 /* Screen Shots */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload == Screen Shots == /* [[Image:biopainter.png|left|thumb|Early development 2006]]*/ /* [[Image:Screenshot08.png|left|thumb|August 2006]] */ /* [[Image:Screenshot10.png|left|thumb|August 2006]] */ <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1631 1630 2006-11-02T20:55:56Z Cates 4 /* Screen Shots */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1632 1631 2006-11-02T20:56:50Z Cates 4 /* Alpha release */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. * Volume Rendering 1633 1632 2006-11-02T20:57:16Z Cates 4 /* Alpha release */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1634 1633 2006-11-02T21:05:46Z Cates 4 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK event management & data types * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1635 1634 2006-11-02T22:14:33Z McKayDavis 45 /* Features */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == <br style="clear:both" /> == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1636 1635 2006-11-02T22:15:56Z McKayDavis 45 /* Movies */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movies on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Respects logical operations (AND, OR, XOR) * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1637 1636 2006-11-02T22:17:17Z McKayDavis 45 /* Hand Contouring / Painting */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movies on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Small (5-10mb binary) * Minimal dependencies (OpenGL) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows (coming soon) === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1638 1637 2006-11-02T22:19:38Z McKayDavis 45 /* LeXoV Engine */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movies on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows === Software Process === * Uses open source * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1639 1638 2006-11-02T22:21:58Z McKayDavis 45 /* Software Process */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movies on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1640 1639 2006-11-02T22:23:19Z McKayDavis 45 /* LeXoV Engine */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movies on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1645 1640 2006-11-02T22:24:42Z McKayDavis 45 /* Image Processing and Segmentation */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movies on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1647 1645 2006-11-06T16:37:07Z McKayDavis 45 /* Screen Shots */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-01.png Capecchi Collab Screenshot 1] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-02.png Capecchi Collab Screenshot 2] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-04.png Matt Jolley Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-05.png Dr. Valentino @ UCLA Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-06.png NCMIR Collab Screenshot] <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movies on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1656 1647 2006-11-06T16:46:59Z McKayDavis 45 /* Movies */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-01.png Capecchi Collab Screenshot 1] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-02.png Capecchi Collab Screenshot 2] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-04.png Matt Jolley Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-05.png Dr. Valentino @ UCLA Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-06.png NCMIR Collab Screenshot] <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://www.sci.utah.edu/~mdavis/Seg3D/ 720x480 PowerPoint optimized movies] [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movie scripts on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1657 1656 2006-11-06T22:52:38Z Erikj 2 /* Overview */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. For up to date information and announcements regarding Seg3D please [[http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl | Join the Seg3D Mailing List. ]] == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-01.png Capecchi Collab Screenshot 1] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-02.png Capecchi Collab Screenshot 2] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-04.png Matt Jolley Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-05.png Dr. Valentino @ UCLA Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-06.png NCMIR Collab Screenshot] <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://www.sci.utah.edu/~mdavis/Seg3D/ 720x480 PowerPoint optimized movies] [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movie scripts on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 1658 1657 2006-11-06T22:55:21Z Erikj 2 /* Overview */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. <b>For up to date information and announcements regarding Seg3D please [[http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl | Join the Seg3D Mailing List. ]]</b> == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-01.png Capecchi Collab Screenshot 1] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-02.png Capecchi Collab Screenshot 2] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-04.png Matt Jolley Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-05.png Dr. Valentino @ UCLA Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-06.png NCMIR Collab Screenshot] <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://www.sci.utah.edu/~mdavis/Seg3D/ 720x480 PowerPoint optimized movies] [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movie scripts on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. CIBC:Documentation:SCIRun 0 1087 2083 1626 2006-11-02T17:46:22Z Jeroen 19 /* '''User Documentation''' */ wikitext text/x-wiki ==='''SCIRun/BioPSE and PowerApps Version 3.0'''=== ---- ===='''General Documentation'''==== ;[[CIBC:Documentation:SCIRun:Overview|Overview]] :A short description of the 'SCIRun/BioPSE' Problem Solving Environment for biomedical applications. ;[[CIBC:Documentation:SCIRun:Download|Download Instructions]] :Instructions on where to download the latest version of SCIRun ;[[CIBC:Documentation:SCIRun:SystemRequirement|System Requirements]] :Overview of supported systems ;[[CIBC:Documentation:SCIRun:Installation|Installation Guide]] :Instructions on installing SCIRun on Linux, OS X, and Windows XP ;[[CIBC:Documentation:SCIRun:ReleaseNotes:3.0|Release Notes Version 3.0]] :Release notes on latest version of SCIRun ---- ===='''User Documentation'''==== ;[[CIBC:Documentation:SCIRun:Manual|SCIRun User Manual]] :An introduction into using SCIRun ;[[CIBC:Documentation:SCIRun:Tutorial:BioPSE|SCIRun User Tutorial]] :Tutorial outlining the basics of SCIRun and BioPSE ;[[CIBC:Documentation:SCIRun:Reference|SCIRun Module Documentation]] :Documentation describing the function of each module ---- ===='''Developer Documentation'''==== ;[[CIBC:Documentation:SCIRun:DevManual|SCIRun Developer Manual]] :General concepts and conventions underlying the SCIRun software infrastructure ;[[CIBC:Documentation:SCIRun:Tutorial:Module|SCIRun Module Writing Tutorial]] :A quick introduction into writing a module ;[[CIBC:Documentation:SCIRun:Doxygen|Doxygen]] :Doxygen documentation generated from source code ---- ===='''BioPSE PowerApps'''==== ---- Go back to [[CIBC:Documentation|Documentation]] CIBC:Documentation 0 1092 1642 1641 2006-11-03T16:51:29Z Cates 4 wikitext text/x-wiki =='''Documentation Portal'''== This page contains links to the documentation for the various software projects that are being developed as part of the 'Center for Integrative BioMedical Computing'. ===Software Documentation=== ;[[CIBC:Documentation:Seg3D|Seg3D]] ;[[CIBC:Documentation:SCIRun|SCIRun/BioPSE]] :Problem Solving Environment for BioMedical Applications ;[[CIBC:Documentation:SCIRun|BioImage]] :Application for displaying and analyzing biomedical images ;[[CIBC:Documentation:SCIRun|BioTensor]] :Application for displaying and analyzing tensor data ;[[CIBC:Documentation:SCIRun|BioFEM]] :Application for calculating electric fields in a finite element mesh 1643 1642 2006-11-03T16:51:55Z Cates 4 /* Software Documentation */ wikitext text/x-wiki =='''Documentation Portal'''== This page contains links to the documentation for the various software projects that are being developed as part of the 'Center for Integrative BioMedical Computing'. ===Software Documentation=== ;[[CIBC:Documentation:Seg3D|Seg3D]] Volume processing and segmentation software. ;[[CIBC:Documentation:SCIRun|SCIRun/BioPSE]] :Problem Solving Environment for BioMedical Applications ;[[CIBC:Documentation:SCIRun|BioImage]] :Application for displaying and analyzing biomedical images ;[[CIBC:Documentation:SCIRun|BioTensor]] :Application for displaying and analyzing tensor data ;[[CIBC:Documentation:SCIRun|BioFEM]] :Application for calculating electric fields in a finite element mesh 2081 1643 2006-11-03T16:52:06Z Cates 4 /* Software Documentation */ wikitext text/x-wiki =='''Documentation Portal'''== This page contains links to the documentation for the various software projects that are being developed as part of the 'Center for Integrative BioMedical Computing'. ===Software Documentation=== ;[[CIBC:Documentation:Seg3D|Seg3D]] :Volume processing and segmentation software. ;[[CIBC:Documentation:SCIRun|SCIRun/BioPSE]] :Problem Solving Environment for BioMedical Applications ;[[CIBC:Documentation:SCIRun|BioImage]] :Application for displaying and analyzing biomedical images ;[[CIBC:Documentation:SCIRun|BioTensor]] :Application for displaying and analyzing tensor data ;[[CIBC:Documentation:SCIRun|BioFEM]] :Application for calculating electric fields in a finite element mesh CIBC:Documentation:Seg3D 0 1692 3834 2006-11-03T16:54:34Z Cates 4 wikitext text/x-wiki ==Seg3D Documentation== Seg3D is currently under active development. Please see [[CIBC:Project:NCMIR]] for current information. CIBC:Project:Matlab 0 1076 1698 1644 2006-11-03T23:23:45Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) Dynamically modifying function parameters to a Matlab program within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. 6) How to access functions and variables that are present within Matlab source code using the SCIRun Matlab module? 7) How to convert Matlab data types into corresponding SCIRun data types? 8) How to combine scientific visualization data representation with additional information such as titles, axis labels, etc. That are described within the Matlab code? 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functions such as contour(...), surf(...), mesh(...), etc? 10) How to create a combined visualization within SCIRun? File:Seg3D-01.png 6 1693 3835 2006-11-06T16:25:35Z McKayDavis 45 wikitext text/x-wiki CIBC:SoftwareDesign 0 1130 3269 1646 2006-11-06T16:41:00Z Jeroen 19 /* Projects */ wikitext text/x-wiki == Software Design == ===Projects=== ;[[CIBC:SoftwareDesign:LinearAlgebra|Linear Algebra]] :Making better use of CBLAS/ATLAS as well as parallel computing ;[[CIBC:SoftwareDesign:Scheduler|Scheduler]] :Rules for a proper working scheduler ---- CIBC:SoftwareDesign:Scheduler 0 1694 1648 2006-11-06T16:52:07Z Jeroen 19 wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== We assume the module can be in one of the following states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Executing''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Execute pending''': This module will execute as a consequence of a module upstream that is executing. *'''Execting with intermediate''': This 1649 1648 2006-11-06T16:56:08Z Jeroen 19 /* Scheduler Design */ wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== We assume the module can be in one of the following states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Executing''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Execute pending''': This module will execute as a consequence of a module upstream that is executing. *'''Execting with intermediate''': This module is currently executing, but it is forwarding intermediate results, which are valid results and the modules downstream can execute as soon as we have intermediate results. *'''Disabled''': This module is disabled and should not be considered to be part of the network. *'''Aborting''': This module is given the order to stop and will not post a result on the output ports. 1650 1649 2006-11-06T17:14:39Z Jeroen 19 /* Scheduler Design */ wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== ====Module states==== We assume the module can be in one of the following eight states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Executing''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Execute pending''': This module will execute as a consequence of a module upstream that is executing. *'''Executing with intermediate''': This module is currently executing, but it is forwarding intermediate results, which are valid results and the modules downstream can execute as soon as we have intermediate results. *'''Disabled''': This module is disabled and should not be considered to be part of the network. *'''Aborting''': This module is given the order to stop and will not post a result on the output ports. *'''Reexecute when network finished''': This module automatically retriggers executing when it the full network has been finished, i.e. no module is executing, aborting, or waiting for execution. ====Execution triggers==== * A module can be execute by the user directly, in which case execution is immediate. * A module can be forced by the network to be executed, in which case execution is delayed until the modules upstream will not have an execute pending anymore. ====Intermediate results==== In the current design we use intermediate results in two cases: to display intermediate results in a solving process and to create animations. However the needs of both are different, for intermediate results it is not necessary that every intermediate is displayed, if the solving is faster than the intermediates we should be skipping displaying some of them. Such a behavior is however not wanted for making animations or looping through files. Hence we need to split this behavior: * For intermediate results a module should post intermediate results that trigger executing in the downstream module immediately. However if the downstream module is still executing it should take the last intermediate result available to use. * For animationg processing loops, timing is more crucial and synchronization is of importance. Hence this kind of behavior is better served by relying on a callback. A module generating such a sequence is not generating intermediate results. After execution of the module one time, it will post to the scheduler that it will execute again automatically when the full network is done. Internally it will check the execution number ID, and if it is a new one it will move on to the next piece of data. We can eventually implement this with different priority levels. *For taking movie frames we can now synchronize this on execution being finished. 1651 1650 2006-11-06T18:20:05Z Jeroen 19 /* Scheduler Design */ wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== ====Module states==== We assume the module can be in one of the following eight states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Executing''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Execute pending''': This module will execute as a consequence of a module upstream that is executing. *'''Executing with intermediate''': This module is currently executing, but it is forwarding intermediate results, which are valid results and the modules downstream can execute as soon as we have intermediate results. *'''Disabled''': This module is disabled and should not be considered to be part of the network. *'''Aborting''': This module is given the order to stop and will not post a result on the output ports. *'''Wait until downstream done''': This module automatically retriggers executing when no modules downstream are executing or depend on executing. ====Execution triggers==== * A module can be execute by the user directly, in which case execution is immediate. * A module can be forced by the network to be executed, in which case execution is delayed until the modules upstream will not have an execute pending anymore. * A module can reexecute automatically when all modules downstream have finished execution. ====Intermediate Results==== In the current design we use intermediate results in two cases: to display intermediate results in a solving process and to create animations. However the needs of both are different, for intermediate results it is not necessary that every intermediate is displayed, if the solving is faster than the intermediates we should be skipping displaying some of them. Such a behavior is however not wanted for making animations or looping through files. Hence we need to split this behavior: ====Execution model==== All actions run through the scheduler, which computes the state of each module up on every change in the network. The scheduler is the only entity that can start the execution of a module. For this behavior we need to alter the module code, so a module waits for a signal from the scheduler to start execution. The following events trigger recomputing the state of the network: * '''Module finished execution''': Check whether the module was scheduled for reexecution as some of the parameters changed while executing. Update the list of modules that depend on this one, check whether modules that are scheduled for automatic reexecution have all their downstream modules finished. Determine which modules need to receive an execute instrution. * '''Adding/deleting pipe''': The module that has a pipe added or deleted will go to an ''unresolved'' state if it was not being executed. If the module is executing the module will be marked to reexecute when execution is completed and the results will be automatically discarded. If the module is downstream of a 1652 1651 2006-11-06T18:25:06Z Jeroen 19 /* Module states */ wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== ====Module states==== We assume the module can be in one of the following eight states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Computing new data''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Waiting for new data upstream''': This module will execute as a consequence of a module upstream that is executing. *'''Computing intermediate''': This module is currently executing, but it is forwarding intermediate results, which are valid results and the modules downstream can execute as soon as we have intermediate results. *'''Waiting for downstream to resolve''': This module automatically retriggers executing when no modules downstream are executing or depend on executing. *'''Disabled''': This module is disabled and should not be considered to be part of the network. *'''Aborting''': This module is given the order to stop and will not post a result on the output ports. ====Execution triggers==== * A module can be execute by the user directly, in which case execution is immediate. * A module can be forced by the network to be executed, in which case execution is delayed until the modules upstream will not have an execute pending anymore. * A module can reexecute automatically when all modules downstream have finished execution. ====Intermediate Results==== In the current design we use intermediate results in two cases: to display intermediate results in a solving process and to create animations. However the needs of both are different, for intermediate results it is not necessary that every intermediate is displayed, if the solving is faster than the intermediates we should be skipping displaying some of them. Such a behavior is however not wanted for making animations or looping through files. Hence we need to split this behavior: ====Execution model==== All actions run through the scheduler, which computes the state of each module up on every change in the network. The scheduler is the only entity that can start the execution of a module. For this behavior we need to alter the module code, so a module waits for a signal from the scheduler to start execution. The following events trigger recomputing the state of the network: * '''Module finished execution''': Check whether the module was scheduled for reexecution as some of the parameters changed while executing. Update the list of modules that depend on this one, check whether modules that are scheduled for automatic reexecution have all their downstream modules finished. Determine which modules need to receive an execute instrution. * '''Adding/deleting pipe''': The module that has a pipe added or deleted will go to an ''unresolved'' state if it was not being executed. If the module is executing the module will be marked to reexecute when execution is completed and the results will be automatically discarded. If the module is downstream of a 1653 1652 2006-11-06T18:25:27Z Jeroen 19 /* Module states */ wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== ====Module states==== We assume the module can be in one of the following eight states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Computing new data''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Waiting for new data upstream''': This module will execute as a consequence of a module upstream that is executing. *'''Computing intermediate''': This module is currently executing, but it is forwarding intermediate results, which are valid results and the modules downstream can execute as soon as we have intermediate results. *'''Waiting for downstream to resolve''': This module automatically retriggers executing when no modules downstream are executing or depend on executing. *'''Disabled''': This module is disabled and should not be considered to be part of the network. *'''Aborting''': This module is given the order to stop and will not post a result on the output ports. ====Execution triggers==== * A module can be execute by the user directly, in which case execution is immediate. * A module can be forced by the network to be executed, in which case execution is delayed until the modules upstream will not have an execute pending anymore. * A module can reexecute automatically when all modules downstream have finished execution. ====Intermediate Results==== In the current design we use intermediate results in two cases: to display intermediate results in a solving process and to create animations. However the needs of both are different, for intermediate results it is not necessary that every intermediate is displayed, if the solving is faster than the intermediates we should be skipping displaying some of them. Such a behavior is however not wanted for making animations or looping through files. Hence we need to split this behavior: ====Execution model==== All actions run through the scheduler, which computes the state of each module up on every change in the network. The scheduler is the only entity that can start the execution of a module. For this behavior we need to alter the module code, so a module waits for a signal from the scheduler to start execution. The following events trigger recomputing the state of the network: * '''Module finished execution''': Check whether the module was scheduled for reexecution as some of the parameters changed while executing. Update the list of modules that depend on this one, check whether modules that are scheduled for automatic reexecution have all their downstream modules finished. Determine which modules need to receive an execute instrution. * '''Adding/deleting pipe''': The module that has a pipe added or deleted will go to an ''unresolved'' state if it was not being executed. If the module is executing the module will be marked to reexecute when execution is completed and the results will be automatically discarded. If the module is downstream of a 1654 1653 2006-11-06T18:40:55Z Jeroen 19 /* Scheduler Design */ wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== ====Module states==== We assume the module can be in one of the following eight states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Computing new data''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Waiting for new data upstream''': This module will execute as a consequence of a module upstream that is executing. *'''Computing intermediate''': This module is currently executing, but it is forwarding intermediate results, which are valid results and the modules downstream can execute as soon as we have intermediate results. *'''Waiting for downstream to resolve''': This module automatically retriggers executing when no modules downstream are executing or depend on executing. *'''Disabled''': This module is disabled and should not be considered to be part of the network. *'''Aborting''': This module is given the order to stop and will not post a result on the output ports. ====Execution triggers==== * A module can be execute by the user directly, in which case execution is immediate. * A module can be forced by the network to be executed, in which case execution is delayed until the modules upstream will not have an execute pending anymore. * A module can reexecute automatically when all modules downstream have finished execution. ====Intermediate Results==== In the current design we use intermediate results in two cases: to display intermediate results in a solving process and to create animations. However the needs of both are different, for intermediate results it is not necessary that every intermediate is displayed, if the solving is faster than the intermediates we should be skipping displaying some of them. Such a behavior is however not wanted for making animations or looping through files. Hence we need to split this behavior: ====Execution model==== All actions run through the scheduler, which computes the state of each module up on every change in the network. The scheduler is the only entity that can start the execution of a module. For this behavior we need to alter the module code, so a module waits for a signal from the scheduler to start execution or abort in case the module is deleted. The following events trigger recomputing the state of the network: * '''Module finished execution''': ** Update the list of modules that depend on this module and schedule them to wait for new data (make sure that modules cannot wait for dependencies that depend on module itself). ** Check whether the output should be considered valid. If a pipe was added or deleted while the module was executing all results of the module should be considered invalid and the module should reexecute. ** If excution was aborted all modules that depend on this one should go into the unresolved state, however modules that depend on other modules that are still executing still are scheduled for execution and continue to wait for new data. ** Determine which modules that are waiting for new data can be executed as the modules upstream are not computing new data. * '''Adding/deleting pipe''': 1655 1654 2006-11-06T18:50:13Z Jeroen 19 /* Execution model */ wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== ====Module states==== We assume the module can be in one of the following eight states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Computing new data''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Waiting for new data upstream''': This module will execute as a consequence of a module upstream that is executing. *'''Computing intermediate''': This module is currently executing, but it is forwarding intermediate results, which are valid results and the modules downstream can execute as soon as we have intermediate results. *'''Waiting for downstream to resolve''': This module automatically retriggers executing when no modules downstream are executing or depend on executing. *'''Disabled''': This module is disabled and should not be considered to be part of the network. *'''Aborting''': This module is given the order to stop and will not post a result on the output ports. ====Execution triggers==== * A module can be execute by the user directly, in which case execution is immediate. * A module can be forced by the network to be executed, in which case execution is delayed until the modules upstream will not have an execute pending anymore. * A module can reexecute automatically when all modules downstream have finished execution. ====Intermediate Results==== In the current design we use intermediate results in two cases: to display intermediate results in a solving process and to create animations. However the needs of both are different, for intermediate results it is not necessary that every intermediate is displayed, if the solving is faster than the intermediates we should be skipping displaying some of them. Such a behavior is however not wanted for making animations or looping through files. Hence we need to split this behavior: ====Execution model==== All actions run through the scheduler, which computes the state of each module up on every change in the network. The scheduler is the only entity that can start the execution of a module. For this behavior we need to alter the module code, so a module waits for a signal from the scheduler to start execution or abort in case the module is deleted. The following events trigger recomputing the state of the network: * '''Module finished execution''': ** Update the list of modules that depend on this module and schedule them to wait for new data (make sure that modules cannot wait for dependencies that depend on module itself). ** Check whether the output should be considered valid. If a pipe was added or deleted while the module was executing all results of the module should be considered invalid and the module should reexecute. ** If excution was aborted all modules that depend on this one should go into the unresolved state, however modules that depend on other modules that are still executing still are scheduled for execution and continue to wait for new data. ** Determine which modules that are waiting for new data can be executed as the modules upstream are not computing new data. * '''Adding/deleting pipe''': ** If module is executing try to abort module and reschedule module for execution. ** If module is not executing but is waiting for data recalculate the dependency scheme and keep the module in the '''Waiting for new data''' mode. This module then may trigger execution when the modules upstream are finished. ** If a module is in the resolved state, push it to the unresolved state, but do not execute. * '''Adding module''': ** Compute whether the execution of a module upstream will trigger this module. In that case the module should go to the '''Wait for new data state''' immediately. ** If the module has no upstream execution schedule it will stay in the '''unresolved''' state. * '''Deleting a module''': ** The module that is deleted is removed from the network ** The module is issued an abort ** When the module finishes it will be deleted from SCIRun ** Recompute all dependecies and all states of modules when the module is deleted. ** As deletion causes pipes to be deleted, some modules will be forced into an unresolved state. 3836 1655 2006-11-06T19:40:12Z Jeroen 19 /* Scheduler Design */ wikitext text/x-wiki ==Scheduler Design== ===Rules for scheduling=== ====Module states==== We assume the module can be in one of the following eight states: *'''Unresolved''': An unresolved module has not adjusted its output to the input or the variables set. When loading a new network all modules will be in this state. The objective of the Scheduler will be to ''solve'' all modules. *'''Resolved''': This module's output matches the input and variables given. Hence it is in perfect equlibrium. The scheduler does not need to reexecute the module. *'''Computing new data''': This module is currently executing and will have new data shortly. All modules downstream will be waiting to finish execution until this one is done. *'''Waiting for new data upstream''': This module will execute as a consequence of a module upstream that is executing. *'''Computing intermediate''': This module is currently executing, but it is forwarding intermediate results, which are valid results and the modules downstream can execute as soon as we have intermediate results. *'''Waiting for downstream to resolve''': This module automatically retriggers executing when no modules downstream are executing or depend on executing. *'''Disabled''': This module is disabled and should not be considered to be part of the network. *'''Aborting''': This module is given the order to stop and will not post a result on the output ports. ====Execution triggers==== * A module can be execute by the user directly, in which case execution is immediate. * A module can be forced by the network to be executed, in which case execution is delayed until the modules upstream will not have an execute pending anymore. * A module can reexecute automatically when all modules downstream have finished execution. ====Intermediate Results==== In the current design we use intermediate results in two cases: to display intermediate results in a solving process and to create animations. However the needs of both are different, for intermediate results it is not necessary that every intermediate is displayed, if the solving is faster than the intermediates we should be skipping displaying some of them. Such a behavior is however not wanted for making animations or looping through files. Hence we need to split this behavior: ====Execution model==== All actions run through the scheduler, which computes the state of each module up on every change in the network. The scheduler is the only entity that can start the execution of a module. For this behavior we need to alter the module code, so a module waits for a signal from the scheduler to start execution or abort in case the module is deleted. The following events trigger recomputing the state of the network: * '''Module finished execution''': ** Update the list of modules that depend on this module and schedule them to wait for new data (make sure that modules cannot wait for dependencies that depend on module itself). ** Check whether the output should be considered valid. If a pipe was added or deleted while the module was executing all results of the module should be considered invalid and the module should reexecute. ** If excution was aborted all modules that depend on this one should go into the unresolved state, however modules that depend on other modules that are still executing still are scheduled for execution and continue to wait for new data. ** Determine which modules that are waiting for new data can be executed as the modules upstream are not computing new data. * '''Adding/deleting pipe''': ** If module is executing try to abort module and reschedule module for execution. ** If module is not executing but is waiting for data recalculate the dependency scheme and keep the module in the '''Waiting for new data''' mode. This module then may trigger execution when the modules upstream are finished. ** If a module is in the resolved state, push it to the unresolved state, but do not execute. * '''Adding module''': ** Compute whether the execution of a module upstream will trigger this module. In that case the module should go to the '''Wait for new data state''' immediately. ** If the module has no upstream execution schedule it will stay in the '''unresolved''' state. * '''Deleting a module''': ** The module that is deleted is removed from the network ** The module is issued an abort ** When the module finishes it will be deleted from SCIRun ** Recompute all dependecies and all states of modules when the module is deleted. ** As deletion causes pipes to be deleted, some modules will be forced into an unresolved state. ====Sketch of Scheduler Innerworkings==== * An event (module execution finished, module intermediate execution finished, add pipe, remove pipe, add module, remove module, user execute module) occurs and is reported to the mailbox of the Scheduler. * Scheduler locks and prevents anything from changing the current state. We will do an event by event recompution of the full state of the scheduler. * First make a list of all modules that are currently executing. Use the information from the events to see if a module finished execution or was ordered by the user to execute. If the user executed a module it is added to the execution list, if a module finished it is removed from the execution list. * Second determine which modules are resolved and which are not and which modules are disabled. Check whether the generation numbers used of the dataflow objects used for the most recent execution are the most recent from the upstream modules. If a module is disabled no state information will be calculated for it: it is in the disabled state. * Determine all modules that depend on modules executing in the network, these modules will go in the '''wait for new data''' list. CIBC:Project:NCMIR 0 1061 1660 1658 2006-11-07T00:21:12Z Cates 4 /* Overview */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. <b>For up to date information and announcements regarding Seg3D please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl Join the Seg3D Mailing List. ]</b> == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-01.png Capecchi Collab Screenshot 1] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-02.png Capecchi Collab Screenshot 2] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-04.png Matt Jolley Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-05.png Dr. Valentino @ UCLA Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-06.png NCMIR Collab Screenshot] <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://www.sci.utah.edu/~mdavis/Seg3D/ 720x480 PowerPoint optimized movies] [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movie scripts on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 2117 1660 2006-11-07T00:22:50Z Cates 4 /* Overview */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. <b>For up to date information and announcements regarding Seg3D please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl Join the Seg3D Mailing List. ]</b> <b>Seg3D is built atop the LeXoV volume processing engine. For more information, see [http://www.lexov.org www.lexov.org]. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-01.png Capecchi Collab Screenshot 1] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-02.png Capecchi Collab Screenshot 2] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-04.png Matt Jolley Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-05.png Dr. Valentino @ UCLA Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-06.png NCMIR Collab Screenshot] <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://www.sci.utah.edu/~mdavis/Seg3D/ 720x480 PowerPoint optimized movies] [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movie scripts on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. Main Page 0 1 1972 1659 2006-11-07T00:22:36Z McKayDavis 45 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== The release Seg3D is near. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle 0 1479 1662 1661 2006-11-07T16:25:32Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''GetColorMap2sFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''colormap2''' object from a bundle. ====Detailed Description==== This module retrieves a '''colormap2''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''colormap2''' object. There are two ways of specifying the name of the '''colormap2''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''colormap2''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 3618 1662 2006-11-07T16:30:07Z Jeroen 19 /* Frequently Asked Questions */ wikitext text/x-wiki =='''GetColorMap2sFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''colormap2''' object from a bundle. ====Detailed Description==== This module retrieves a '''colormap2''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''colormap2''' object. There are two ways of specifying the name of the '''colormap2''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''colormap2''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle 0 1096 1664 1663 2006-11-07T16:32:46Z Jeroen 19 /* '''GetBundlesFromBundle''' */ wikitext text/x-wiki =='''GetBundlesFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''bundle''' object from a bundle. ====Detailed Description==== This module retrieves a '''bundle''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''bundle''' object. There are two ways of specifying the name of the '''bundle''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''bundle''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known bugs=== --- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 1665 1664 2006-11-07T16:33:06Z Jeroen 19 /* Known bugs */ wikitext text/x-wiki =='''GetBundlesFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''bundle''' object from a bundle. ====Detailed Description==== This module retrieves a '''bundle''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''bundle''' object. There are two ways of specifying the name of the '''bundle''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''bundle''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 3235 1665 2006-11-07T16:36:34Z Jeroen 19 /* Frequently Asked Questions */ wikitext text/x-wiki =='''GetBundlesFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''bundle''' object from a bundle. ====Detailed Description==== This module retrieves a '''bundle''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''bundle''' object. There are two ways of specifying the name of the '''bundle''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''bundle''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ;The module does not extract the bundle object? :Make sure one does not use the first output port as this is a mere copy of the input bundle. The second to fourth output port correspond to the bundles extracted from the bundle. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle 0 1097 3236 1666 2006-11-07T16:38:11Z Jeroen 19 /* '''GetColorMapsFromBundle''' */ wikitext text/x-wiki =='''GetColorMapsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''colormap''' object from a bundle. ====Detailed Description==== This module retrieves a '''colormap''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''colormap''' object. There are two ways of specifying the name of the '''colormap''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''colormap''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle 0 1098 3237 1667 2006-11-07T16:39:40Z Jeroen 19 /* '''GetFieldsFromBundle''' */ wikitext text/x-wiki =='''GetFieldsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''field''' object from a bundle. ====Detailed Description==== This module retrieves a '''field''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''field''' object. There are two ways of specifying the name of the '''field''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''field''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle 0 1099 3238 1668 2006-11-07T16:41:09Z Jeroen 19 /* '''GetMatricesFromBundle''' */ wikitext text/x-wiki =='''GetMatricesFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''matrix''' object from a bundle. ====Detailed Description==== This module retrieves a '''matrix''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''matrix''' object. There are two ways of specifying the name of the '''matrix''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''matrix''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle 0 1100 1670 1669 2006-11-07T16:44:04Z Jeroen 19 /* '''GetNrrdsFromBundle''' */ wikitext text/x-wiki =='''GetNrrdsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''colormap2''' object from a bundle. ====Detailed Description==== This module retrieves a '''nrrd''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''nrrd''' object. There are two ways of specifying the name of the '''nrrd''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''nrrd''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 3239 1670 2006-11-07T16:44:22Z Jeroen 19 /* Summary */ wikitext text/x-wiki =='''GetNrrdsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''nrrd''' object from a bundle. ====Detailed Description==== This module retrieves a '''nrrd''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''nrrd''' object. There are two ways of specifying the name of the '''nrrd''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''nrrd''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle 0 1101 3240 1671 2006-11-07T16:45:26Z Jeroen 19 /* '''GetPathsFromBundle''' */ wikitext text/x-wiki =='''GetPathsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''path''' object from a bundle. ====Detailed Description==== This module retrieves a '''path''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''path''' object. There are two ways of specifying the name of the '''path''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''path''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle 0 1102 3241 1672 2006-11-07T16:47:14Z Jeroen 19 /* '''GetStringsFromBundle''' */ wikitext text/x-wiki =='''GetStringsFromBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module retrieves a '''string''' object from a bundle. ====Detailed Description==== This module retrieves a '''string''' object from a bundle by specifying the name under which the obect is stored in the bundle. The module has three output ports that each can be programmed to retrieve a specific '''string''' object. There are two ways of specifying the name of the '''string''' object. Firstly one can enter the name of the object in the entry box on top of the menu, secondly one can execute the module, in which case a list of all objects of the '''string''' is generated. By selecting the one that one wants on the output port the obect can be retrieved from the bundle. The first bundle output port generates a copy of the input bundle and can be used to attach a second module that retrieves data from the bundle. ---- ===Frequently Asked Questions=== ;Why does the module only have three output ports? :The current SCIRun interface does not allow for a variable number of output ports. The current number of output ports was arbitrary chosen and may change in the future with improvements to the SCIRun infrastructure. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles 0 1110 3249 1673 2006-11-07T16:50:11Z Jeroen 19 /* '''JoinBundles''' */ wikitext text/x-wiki =='''JoinBundles'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module merges the contents of multiple bundles into one bundle. ====Detailed Description==== This module merges the contents of multiple bundles into one bundle. If an object with the same name exists in multiple bundles the one from the right most input is chosen and the other one will be discarded. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun 0 1095 1683 1674 2006-11-07T16:51:37Z Jeroen 19 /* '''Bundle''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a 'bundle' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a 'colormap2' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a 'colormap' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a 'field' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a 'matrix' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a 'nrrd' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a 'path' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a 'string' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module adds a 'bundle' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module adds a 'colormap2' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module adds a 'colormap' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module adds a 'field' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module adds a 'matrix' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module adds a 'nrrd' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module adds a 'path' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module adds a 'string' object to a bundle stream. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a bundle from disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :The ColorMap Read a persistent colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :The ColorMap2 Read a persistent 2d colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :The ReadPath module reads a persistent camera path from a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a bundle to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :Saves persistent field objects received from upstream modules. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :The WriteMatrix modules saves a persistent representation of a matrix to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :The WritePath module saves persistent representation of a path to a file. ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|AppendMatrix]] :Composite a matrix from components. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1741 1683 2006-11-07T17:59:49Z Jeroen 19 /* '''Bundle''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a bundle from disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :The ColorMap Read a persistent colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :The ColorMap2 Read a persistent 2d colormap from a file on disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :ReadField allows the user to load-in any of the SCIRun supported Field types and then sends that Field to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :The ReadMatrix moudle reads a persistent matrix from a file and sends that matrix to another module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :The ReadPath module reads a persistent camera path from a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a bundle to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :Save persistent representation of a colormap to a file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :Saves persistent field objects received from upstream modules. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :The WriteMatrix modules saves a persistent representation of a matrix to disk. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :The WritePath module saves persistent representation of a path to a file. ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|AppendMatrix]] :Composite a matrix from components. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle 0 1103 3242 1675 2006-11-07T17:52:12Z Jeroen 19 /* '''InsertBundlesIntoBundle''' */ wikitext text/x-wiki =='''InsertBundlesIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module inserts a '''bundle''' object into a bundle. ====Detailed Description==== This module inserts a '''bundle''' object into a bundle. In the GUI of this module a name can be specified for the object. The latter will be used to catalogue the object inside the bundle. This module allows for three '''bundle''' objects to be inserted at the same time. In the GUI a name can be specified for each of the '''bundle''' objects by clicking on the tab that corresponds to the input port where the dataflow object is located. ---- ===Frequently Asked Questions=== ;How to delete an object from a bundle? :Objects cannot be deleted from a bundle at this time. If one wants a bundle without a certain object one can construct a new bundle or one can overwrite the object by inserting an object with the same name. ;Are bundles memory efficient? :The bundle object only contains pointers to the objects inside its database. An object can be inserted into many bundles without the object being copied in memory. ;Can dataflow objects with a different type use the same name? :No, currently each name points to an unique object in the bundle regardless of the dataflow type. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle 0 1505 3644 1676 2006-11-07T17:53:10Z Jeroen 19 wikitext text/x-wiki =='''InsertColorMap2sIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module inserts a '''colormap2''' object into a bundle. ====Detailed Description==== This module inserts a '''colormap2''' object into a bundle. In the GUI of this module a name can be specified for the object. The latter will be used to catalogue the object inside the bundle. This module allows for three '''colormap2''' objects to be inserted at the same time. In the GUI a name can be specified for each of the '''colormap2''' objects by clicking on the tab that corresponds to the input port where the dataflow object is located. ---- ===Frequently Asked Questions=== ;How to delete an object from a bundle? :Objects cannot be deleted from a bundle at this time. If one wants a bundle without a certain object one can construct a new bundle or one can overwrite the object by inserting an object with the same name. ;Are bundles memory efficient? :The bundle object only contains pointers to the objects inside its database. An object can be inserted into many bundles without the object being copied in memory. ;Can dataflow objects with a different type use the same name? :No, currently each name points to an unique object in the bundle regardless of the dataflow type. ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle 0 1104 3243 1677 2006-11-07T17:53:58Z Jeroen 19 wikitext text/x-wiki =='''InsertColorMapsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module inserts a '''colormap''' object into a bundle. ====Detailed Description==== This module inserts a '''colormap''' object into a bundle. In the GUI of this module a name can be specified for the object. The latter will be used to catalogue the object inside the bundle. This module allows for three '''colormap''' objects to be inserted at the same time. In the GUI a name can be specified for each of the '''colormap''' objects by clicking on the tab that corresponds to the input port where the dataflow object is located. ---- ===Frequently Asked Questions=== ;How to delete an object from a bundle? :Objects cannot be deleted from a bundle at this time. If one wants a bundle without a certain object one can construct a new bundle or one can overwrite the object by inserting an object with the same name. ;Are bundles memory efficient? :The bundle object only contains pointers to the objects inside its database. An object can be inserted into many bundles without the object being copied in memory. ;Can dataflow objects with a different type use the same name? :No, currently each name points to an unique object in the bundle regardless of the dataflow type. ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle 0 1105 3244 1678 2006-11-07T17:54:42Z Jeroen 19 wikitext text/x-wiki =='''InsertFieldsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module inserts a '''field''' object into a bundle. ====Detailed Description==== This module inserts a '''field''' object into a bundle. In the GUI of this module a name can be specified for the object. The latter will be used to catalogue the object inside the bundle. This module allows for three '''field''' objects to be inserted at the same time. In the GUI a name can be specified for each of the '''field''' objects by clicking on the tab that corresponds to the input port where the dataflow object is located. ---- ===Frequently Asked Questions=== ;How to delete an object from a bundle? :Objects cannot be deleted from a bundle at this time. If one wants a bundle without a certain object one can construct a new bundle or one can overwrite the object by inserting an object with the same name. ;Are bundles memory efficient? :The bundle object only contains pointers to the objects inside its database. An object can be inserted into many bundles without the object being copied in memory. ;Can dataflow objects with a different type use the same name? :No, currently each name points to an unique object in the bundle regardless of the dataflow type. ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle 0 1106 3245 1679 2006-11-07T17:55:25Z Jeroen 19 wikitext text/x-wiki =='''InsertMatricesIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module inserts a '''matrix''' object into a bundle. ====Detailed Description==== This module inserts a '''matrix''' object into a bundle. In the GUI of this module a name can be specified for the object. The latter will be used to catalogue the object inside the bundle. This module allows for three '''matrix''' objects to be inserted at the same time. In the GUI a name can be specified for each of the '''matrix''' objects by clicking on the tab that corresponds to the input port where the dataflow object is located. ---- ===Frequently Asked Questions=== ;How to delete an object from a bundle? :Objects cannot be deleted from a bundle at this time. If one wants a bundle without a certain object one can construct a new bundle or one can overwrite the object by inserting an object with the same name. ;Are bundles memory efficient? :The bundle object only contains pointers to the objects inside its database. An object can be inserted into many bundles without the object being copied in memory. ;Can dataflow objects with a different type use the same name? :No, currently each name points to an unique object in the bundle regardless of the dataflow type. ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle 0 1107 3246 1680 2006-11-07T17:56:17Z Jeroen 19 wikitext text/x-wiki =='''InsertNrrdsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module inserts a '''nrrd''' object into a bundle. ====Detailed Description==== This module inserts a '''nrrd''' object into a bundle. In the GUI of this module a name can be specified for the object. The latter will be used to catalogue the object inside the bundle. This module allows for three '''nrrd''' objects to be inserted at the same time. In the GUI a name can be specified for each of the '''nrrd''' objects by clicking on the tab that corresponds to the input port where the dataflow object is located. ---- ===Frequently Asked Questions=== ;How to delete an object from a bundle? :Objects cannot be deleted from a bundle at this time. If one wants a bundle without a certain object one can construct a new bundle or one can overwrite the object by inserting an object with the same name. ;Are bundles memory efficient? :The bundle object only contains pointers to the objects inside its database. An object can be inserted into many bundles without the object being copied in memory. ;Can dataflow objects with a different type use the same name? :No, currently each name points to an unique object in the bundle regardless of the dataflow type. ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle 0 1108 3247 1681 2006-11-07T17:57:05Z Jeroen 19 wikitext text/x-wiki =='''InsertPathsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module inserts a '''path''' object into a bundle. ====Detailed Description==== This module inserts a '''path''' object into a bundle. In the GUI of this module a name can be specified for the object. The latter will be used to catalogue the object inside the bundle. This module allows for three '''path''' objects to be inserted at the same time. In the GUI a name can be specified for each of the '''path''' objects by clicking on the tab that corresponds to the input port where the dataflow object is located. ---- ===Frequently Asked Questions=== ;How to delete an object from a bundle? :Objects cannot be deleted from a bundle at this time. If one wants a bundle without a certain object one can construct a new bundle or one can overwrite the object by inserting an object with the same name. ;Are bundles memory efficient? :The bundle object only contains pointers to the objects inside its database. An object can be inserted into many bundles without the object being copied in memory. ;Can dataflow objects with a different type use the same name? :No, currently each name points to an unique object in the bundle regardless of the dataflow type. ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle 0 1109 3248 1682 2006-11-07T17:57:52Z Jeroen 19 wikitext text/x-wiki =='''InsertStringsIntoBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Bundle :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module inserts a '''string''' object into a bundle. ====Detailed Description==== This module inserts a '''string''' object into a bundle. In the GUI of this module a name can be specified for the object. The latter will be used to catalogue the object inside the bundle. This module allows for three '''string''' objects to be inserted at the same time. In the GUI a name can be specified for each of the '''string''' objects by clicking on the tab that corresponds to the input port where the dataflow object is located. ---- ===Frequently Asked Questions=== ;How to delete an object from a bundle? :Objects cannot be deleted from a bundle at this time. If one wants a bundle without a certain object one can construct a new bundle or one can overwrite the object by inserting an object with the same name. ;Are bundles memory efficient? :The bundle object only contains pointers to the objects inside its database. An object can be inserted into many bundles without the object being copied in memory. ;Can dataflow objects with a different type use the same name? :No, currently each name points to an unique object in the bundle regardless of the dataflow type. ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle 0 1539 1685 1684 2006-11-07T18:01:12Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ReadBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a '''bundle''' dataflow from disk. ====Detailed Description==== This module reads a '''bundle''' from disk. A bundle file has a .bdl extension and can be written with the BundleWriter module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it in one file. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 1686 1685 2006-11-07T18:03:04Z Jeroen 19 /* Frequently Asked Questions */ wikitext text/x-wiki =='''ReadBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a '''bundle''' dataflow from disk. ====Detailed Description==== This module reads a '''bundle''' from disk. A bundle file has a .bdl extension and can be written with the BundleWriter module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it in one file. ---- ===Frequently Asked Questions=== ;Does the bundle writer store duplicate objects twice in a file? :No, the bundle writer will detect whether objects are the same. For instance if two fields use the same mesh, the mesh is only stored once in the file. This way memory and space is conserved. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 1743 1686 2006-11-07T18:03:34Z Jeroen 19 /* Frequently Asked Questions */ wikitext text/x-wiki =='''ReadBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a '''bundle''' dataflow from disk. ====Detailed Description==== This module reads a '''bundle''' from disk. A bundle file has a .bdl extension and can be written with the BundleWriter module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it in one file. ---- ===Frequently Asked Questions=== ;Does the bundle writer store duplicate objects twice in a file? :No, the bundle writer will detect whether objects are the same. For instance if two fields use the same mesh, the mesh is only stored once in the file. This way memory and space is conserved. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle 0 1620 1688 1687 2006-11-07T18:04:06Z Jeroen 19 /* Frequently Asked Questions */ wikitext text/x-wiki =='''WriteBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module writes a bundle to disk. ====Detailed Description==== This module writes a bundle to disk. A bundle file has a .bdl extension and can be written with the WriteBundle module and can be read with the BundleReader module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it as one file. ---- ===Frequently Asked Questions=== ;Does the bundle writer store duplicate objects twice in a file? :No, the bundle writer will detect whether objects are the same. For instance if two fields use the same mesh, the mesh is only stored once in the file. This way memory and space is conserved. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 3759 1688 2006-11-07T18:04:48Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''WriteBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module writes a '''bundle''' object to disk. ====Detailed Description==== This module writes a '''bundle''' object to disk. A bundle file has a .bdl extension and can be written with the WriteBundle module and can be read with the BundleReader module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it as one file. ---- ===Frequently Asked Questions=== ;Does the bundle writer store duplicate objects twice in a file? :No, the bundle writer will detect whether objects are the same. For instance if two fields use the same mesh, the mesh is only stored once in the file. This way memory and space is conserved. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString 0 1455 3594 1689 2006-11-07T18:06:12Z Jeroen 19 /* '''CreateString''' */ wikitext text/x-wiki =='''CreateString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module can be used to create a string. ====Detailed Description==== This module allows the user to create a string by typing the string into an edit box in the GUI. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName 0 1488 3627 1690 2006-11-07T18:07:40Z Jeroen 19 /* Detailed Description */ wikitext text/x-wiki =='''GetFileName'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This Module gets a filename and stores it in a string. ====Detailed Description==== This Module gets a filename and stores it in a string. The filename can be selected through a widget in the GUI. The name that was selected is saved in a string. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings 0 1523 3662 1691 2006-11-07T18:09:17Z Jeroen 19 /* Detailed Description */ wikitext text/x-wiki =='''JoinStrings'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module merges multiple strings into one string. ====Detailed Description==== This module merges multiple strings into one string. The strings are read from the left most port to the right most port and are put into one string. (The string of the left most input port is the first string in the merged data and the one on the right is the last one). ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString 0 1535 1693 1692 2006-11-07T18:13:08Z Jeroen 19 /* Detailed Description */ wikitext text/x-wiki =='''PrintMatrixIntoString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module does a sprintf with input matrices into a new string. ====Detailed Description==== This module module takes in a formatted string (a string with %01d, %4.5f, %g etc) and takes the numbers of the input matrix and puts these formatted numbers into the string. The input matrix can be a scalar but can as well be a full dense matrix. The module takes each number out of the matrix and puts it in the formatted number string. For example in order to plot the contents of a 1 by 3 vector one may choose a formatstring of '%f %f %f\n', which will put all three value in the matrix in the formatted string. If there are more numbers in the matrix than in the format string then the current format string will be reused again and the format string is filled out from the first entry again. Hence to get the contents of a 4 by 4 matrix in a comma seperated list one can choose a format string of '%5.5f, '. This will apply this format string to each number in the matrix. In case multiple matrices are supplied, first all the values of the first matrix will be used, then all the numbers of the second matrix, etc. When there are more positions in the matrix where one can fill out a number then the rest will be padded with the value 0.0. '''Note:''' the formatstring may contain '%s', which will remain in the format string and is not touched by this module. To insert strings use [[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] instead. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 1694 1693 2006-11-07T18:13:27Z Jeroen 19 /* Detailed Description */ wikitext text/x-wiki =='''PrintMatrixIntoString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module does a sprintf with input matrices into a new string. ====Detailed Description==== This module module takes in a formatted string (a string with %01d, %4.5f, %g etc) and takes the numbers of the input matrix and puts these formatted numbers into the string. The input matrix can be a scalar but can as well be a full dense matrix. The module takes each number out of the matrix and puts it in the formatted number string. For example in order to plot the contents of a 1 by 3 vector one may choose a formatstring of '%f %f %f\n', which will put all three value in the matrix in the formatted string. If there are more numbers in the matrix than in the format string then the current format string will be reused again and the format string is filled out from the first entry again. Hence to get the contents of a 4 by 4 matrix in a comma seperated list one can choose a format string of '%5.5f, '. This will apply this format string to each number in the matrix. In case multiple matrices are supplied, first all the values of the first matrix will be used, then all the numbers of the second matrix, etc. When there are more positions in the matrix where one can fill out a number then the rest will be padded with the value 0.0. '''Note:''' the format string may contain '%s', which will remain in the format string and is not touched by this module. To insert strings use [[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] instead. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 3674 1694 2006-11-07T18:14:50Z Jeroen 19 /* Detailed Description */ wikitext text/x-wiki =='''PrintMatrixIntoString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module does a sprintf with input matrices into a new string. ====Detailed Description==== This module module takes in a formatted string (a string with %01d, %4.5f, %g etc) and takes the numbers of the input matrix and puts these formatted numbers into the string. The input matrix can be a scalar but can as well be a full dense matrix. The module takes each number out of the matrix and puts it in the formatted number string. For example in order to plot the contents of a 1 by 3 vector one may choose a formatstring of '%f %f %f\n', which will put all three value in the matrix in the formatted string. If there are more numbers in the matrix than in the format string then the current format string will be reused again and the format string is filled out from the first entry again. Hence to get the contents of a 4 by 4 matrix in a comma seperated list one can choose a format string of '%5.5f, '. This will apply this format string to each number in the matrix. In case multiple matrices are supplied, first all the values of the first matrix will be used, then all the numbers of the second matrix, etc. When there are more positions in the matrix where one can fill out a number then the rest will be padded with the value 0.0. The format string to be used can be either entered in the GUI or on the first input port. If a string is found at the first input port, this one is automatically inserted in the widget on the GUI and is the one to be used. '''Note:''' the format string may contain '%s', which will remain in the format string and is not touched by this module. To insert strings use [[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] instead. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString 0 1538 3677 1695 2006-11-07T18:18:17Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''PrintStringIntoString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: String :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module prints a string into a formatted string. ====Detailed Description==== This module performs a '''sprintf''' operation with strings, whereever a %s in the format string is found the input string will be pasted. This module takes in a new string for each %s encountered in the format string. If not enough string are supplied an empty string is used. '''Note:''' This module leaves any numeric formatting untouched. Hence statements like %d or %f remain in the string. To insert numbers, use the [[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] module. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString 0 1591 3730 1696 2006-11-07T18:21:34Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ShowString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Visualization :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module puts the contents of a string in the viewer window. ====Detailed Description==== This module is able to display multiple lines of information into the viewer window. The module takes a string as input and displays the contents on top of the viewer window. If there are 'newlines' in the string multiple lines are displayed (up to ten lines). In the GUI the font size and color can be altered as well as the location of where to plot the text. This module is intended to provide the user with a means to put any arbitrary information about the data being shown inside the figure. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Project:Matlab 0 1076 1699 1698 2006-11-07T22:09:57Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) Dynamically modifying function parameters to a Matlab program within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. 6) How to access functions and variables that are present within Matlab source code using the SCIRun Matlab module? 7) How to convert Matlab data types into corresponding SCIRun data types? 8) How to combine scientific visualization data representation with additional information such as titles, axis labels, etc. That are described within the Matlab code? 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functions such as contour(...), surf(...), mesh(...), etc? 10) How to create a combined visualization within SCIRun? 11)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code whose data processing function should not be modified. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' 1700 1699 2006-11-07T22:23:41Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) Dynamically modifying function parameters to a Matlab program within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. 6) How to access functions and variables that are present within Matlab source code using the SCIRun Matlab module? 7) How to convert Matlab data types into corresponding SCIRun data types? 8) How to combine scientific visualization data representation with additional information such as titles, axis labels, etc. That are described within the Matlab code? 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functions such as contour(...), surf(...), mesh(...), etc? 10) How to create a combined visualization within SCIRun? 11)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 1701 1700 2006-11-09T18:42:32Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) Dynamically modifying function parameters to a Matlab program within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to access functions and variables that are present within Matlab source code using the SCIRun Matlab module? The ability to access Matlab functions and variables from within SCIRun is essential if we want to execute Matlab code within SCIRun. 7) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. 8) How to combine scientific visualization data representation with additional information such as titles, axis labels, etc. That are described within the Matlab code? 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functions such as contour(...), surf(...), mesh(...), etc? 10) How to create a combined visualization within SCIRun? 11)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 1712 1701 2006-11-09T18:59:04Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying function parameters to a Matlab program within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. 7) How to combine scientific visualization data representation with additional information such as titles, axis labels, etc. That are described within the Matlab code? 8) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functions such as contour(...), surf(...), mesh(...), etc? 9) How to create a combined visualization within SCIRun? 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. CIBC:Documentation:SCIRun:Reference:Insight 0 1695 1702 2006-11-09T20:05:49Z Jeroen 19 wikitext text/x-wiki =='''Insight Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Converters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:BuildSeedVolume|BuildSeedVolume]] :>Given a point cloud of doubles, create a binary ITK Image of unsigned chars. ;[[CIBC:Documentation:SCIRun:Reference:Insight:FieldToImage|FieldToImage]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:Image2DToImage3D|Image2DToImage3D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:Image3DToImage2D|Image3DToImage2D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageToField|ImageToField]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageToNrrd|ImageToNrrd]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:NrrdToImage|NrrdToImage]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:RGBPixelToVector|RGBPixelToVector]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorToRGBPixel|VectorToRGBPixel]] : ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:ChooseImage|ChooseImage]] :ChooseImage takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat2D|ColorImageReaderFloat2D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat3D|ColorImageReaderFloat3D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageFileWriter|ImageFileWriter]] :Writes an ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat2D|ImageReaderFloat2D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat3D|ImageReaderFloat3D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:SliceReader|SliceReader]] :Read in a 3D volume a slice at a time. ==='''Filters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryDilateImageFilter|BinaryDilateImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryErodeImageFilter|BinaryErodeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryThresholdImageFilter|BinaryThresholdImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CannySegmentationLevelSetImageFilter|CannySegmentationLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ConfidenceConnectedImageFilter|ConfidenceConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ConnectedThresholdImageFilter|ConnectedThresholdImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CurvatureAnisotropicDiffusionImageFilter|CurvatureAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CurvatureFlowImageFilter|CurvatureFlowImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:DiscreteGaussianImageFilter|DiscreteGaussianImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ExtractImageFilter|ExtractImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GeodesicActiveContourLevelSetImageFilter|GeodesicActiveContourLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientAnisotropicDiffusionImageFilter|GradientAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientMagnitudeImageFilter|GradientMagnitudeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientRecursiveGaussianImageFilter|GradientRecursiveGaussianImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleDilateImageFilter|GrayscaleDilateImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleErodeImageFilter|GrayscaleErodeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:IsolatedConnectedImageFilter|IsolatedConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:MeanImageFilter|MeanImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:NeighborhoodConnectedImageFilter|NeighborhoodConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ReflectImageFilter|ReflectImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:RescaleIntensityImageFilter|RescaleIntensityImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ThresholdSegmentationLevelSetImageFilter|ThresholdSegmentationLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:UnaryFunctorImageFilter|UnaryFunctorImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorConfidenceConnectedImageFilter|VectorConfidenceConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorCurvatureAnisotropicDiffusionImageFilter|VectorCurvatureAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorGradientAnisotropicDiffusionImageFilter|VectorGradientAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorIndexSelectionCastImageFilter|VectorIndexSelectionCastImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:WatershedImageFilter|WatershedImageFilter]] : ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1708 1702 2006-11-09T20:06:20Z Jeroen 19 /* '''Converters''' */ wikitext text/x-wiki =='''Insight Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Converters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:BuildSeedVolume|BuildSeedVolume]] :Given a point cloud of doubles, create a binary ITK Image of unsigned chars. ;[[CIBC:Documentation:SCIRun:Reference:Insight:FieldToImage|FieldToImage]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:Image2DToImage3D|Image2DToImage3D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:Image3DToImage2D|Image3DToImage2D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageToField|ImageToField]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageToNrrd|ImageToNrrd]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:NrrdToImage|NrrdToImage]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:RGBPixelToVector|RGBPixelToVector]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorToRGBPixel|VectorToRGBPixel]] : ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:ChooseImage|ChooseImage]] :ChooseImage takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat2D|ColorImageReaderFloat2D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat3D|ColorImageReaderFloat3D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageFileWriter|ImageFileWriter]] :Writes an ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat2D|ImageReaderFloat2D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat3D|ImageReaderFloat3D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:SliceReader|SliceReader]] :Read in a 3D volume a slice at a time. ==='''Filters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryDilateImageFilter|BinaryDilateImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryErodeImageFilter|BinaryErodeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryThresholdImageFilter|BinaryThresholdImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CannySegmentationLevelSetImageFilter|CannySegmentationLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ConfidenceConnectedImageFilter|ConfidenceConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ConnectedThresholdImageFilter|ConnectedThresholdImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CurvatureAnisotropicDiffusionImageFilter|CurvatureAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CurvatureFlowImageFilter|CurvatureFlowImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:DiscreteGaussianImageFilter|DiscreteGaussianImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ExtractImageFilter|ExtractImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GeodesicActiveContourLevelSetImageFilter|GeodesicActiveContourLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientAnisotropicDiffusionImageFilter|GradientAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientMagnitudeImageFilter|GradientMagnitudeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientRecursiveGaussianImageFilter|GradientRecursiveGaussianImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleDilateImageFilter|GrayscaleDilateImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleErodeImageFilter|GrayscaleErodeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:IsolatedConnectedImageFilter|IsolatedConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:MeanImageFilter|MeanImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:NeighborhoodConnectedImageFilter|NeighborhoodConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ReflectImageFilter|ReflectImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:RescaleIntensityImageFilter|RescaleIntensityImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ThresholdSegmentationLevelSetImageFilter|ThresholdSegmentationLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:UnaryFunctorImageFilter|UnaryFunctorImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorConfidenceConnectedImageFilter|VectorConfidenceConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorCurvatureAnisotropicDiffusionImageFilter|VectorCurvatureAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorGradientAnisotropicDiffusionImageFilter|VectorGradientAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorIndexSelectionCastImageFilter|VectorIndexSelectionCastImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:WatershedImageFilter|WatershedImageFilter]] : ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:Insight:BinaryDilateImageFilter 0 1696 3840 2006-11-09T20:08:58Z Jeroen 19 wikitext text/x-wiki =='''BinaryDilateImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter data using BinaryDilateImageFilter. ====Detailed Description==== Fast binary dilation. BinaryDilateImageFilter is a binary dilation morphologic operation. This implementation is based on the papers: L.Vincent "Morphological transformations of binary images with arbitrary structuring elements", and N.Nikopoulos et al. "An efficient algorithm for 3d binary morphological transformations with 3d structuring elements for arbitrary size and shape". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286. Gray scale images can be processed as binary images by selecting a "DilateValue". Pixel values matching the dilate value are considered the "foreground" and all other pixels are "background". This is useful in processing segmented images where all pixels in segment #1 have value 1 and pixels in segment #2 have value 2, etc. A particular "segment number" can be processed. DilateValue defaults to the maximum possible value of the PixelType. The structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel. A reasonable choice of structuring element is itk::BinaryBallStructuringElement. This module encapsulates the functionality of the ITK Filter itk::BinaryErodeImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:BinaryErodeImageFilter 0 1697 3841 2006-11-09T20:10:05Z Jeroen 19 wikitext text/x-wiki =='''BinaryErodeImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter data using BinaryErodeImageFilter. ====Detailed Description==== Fast binary erosion. BinaryErodeImageFilter is a binary erosion morphologic operation. This implementation is based on the papers: L.Vincent "Morphological transformations of binary images with arbitrary structuring elements", and N.Nikopoulos et al. "An efficient algorithm for 3d binary morphological transformations with 3d structuring elements for arbitrary size and shape". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286. Gray scale images can be processed as binary images by selecting a "ErodeValue". Pixel values matching the dilate value are considered the "foreground" and all other pixels are "background". This is useful in processing segmented images where all pixels in segment #1 have value 1 and pixels in segment #2 have value 2, etc. A particular "segment number" can be processed. ErodeValue defaults to the maximum possible value of the PixelType. The structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel. A reasonable choice of structuring element is itk::BinaryBallStructuringElement. This class was contributed by Gaetan Lehmann from INRA de Jouy-en-Josas. This module encapsulates the functionality of the ITK Filter itk::BinaryErodeImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:BinaryThresholdImageFilter 0 1698 1704 2006-11-09T20:11:20Z Jeroen 19 wikitext text/x-wiki =='''BinaryThresholdImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter data using BinaryThresholdImageFilter. ====Detailed Description==== This filter produces an output image whose pixels are either one of two values ( OutsideValue or InsideValue ), depending on whether of not the corresponding input image pixel lie between the two thresholds ( LowerThreshold and UpperThreshold ). Values equal to either threshold is considered to be between the thresholds. This module encapsulates the functionality of the ITK Filter itk::BinaryThresholdImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:BuildSeedVolume 0 1699 3843 2006-11-09T20:12:24Z Jeroen 19 wikitext text/x-wiki =='''BuildSeedVolume'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Given a point cloud of doubles, create a binary ITK Image of unsigned chars. ====Detailed Description==== This module creates an ITK image from a point cloud of doubles. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:CannySegmentationLevelSetImageFilter 0 1700 1703 2006-11-09T20:13:47Z Jeroen 19 wikitext text/x-wiki =='''CannySegmentationLevelSetImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter data using CannySegmentationLvelSetImageFilter. ====Detailed Description==== Segments structures in images based on image features derived from pseudo-canny-edges. This module encapsulates the functionality of the ITK Filter itk::CannySegmentationLevelSetImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:CannySegmentationLevelSetImageFilter 0 1700 3844 1703 2006-11-09T20:14:06Z Jeroen 19 /* Information */ wikitext text/x-wiki =='''CannySegmentationLevelSetImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter data using CannySegmentationLvelSetImageFilter. ====Detailed Description==== Segments structures in images based on image features derived from pseudo-canny-edges. This module encapsulates the functionality of the ITK Filter itk::CannySegmentationLevelSetImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:BinaryThresholdImageFilter 0 1698 3842 1704 2006-11-09T20:14:47Z Jeroen 19 /* Information */ wikitext text/x-wiki =='''BinaryThresholdImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter data using BinaryThresholdImageFilter. ====Detailed Description==== This filter produces an output image whose pixels are either one of two values ( OutsideValue or InsideValue ), depending on whether of not the corresponding input image pixel lie between the two thresholds ( LowerThreshold and UpperThreshold ). Values equal to either threshold is considered to be between the thresholds. This module encapsulates the functionality of the ITK Filter itk::BinaryThresholdImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:FieldToImage 0 1701 1705 2006-11-09T20:19:05Z Jeroen 19 wikitext text/x-wiki =='''ImageToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert an ITK Image object into a Field object. ====Detailed Description==== Converts an ITK Image to a SCIRun Field. If the radiobutton "Reference ITK Image Data" is selected, then the data is not copied and an ITKImageField or ITKLatVolField will result. If the "Copy Data" option is selected, the data is copied and an ImageField or LatVolField will be created. This module will convert Scalar Data Vector Data, and RGBPixel data. ---- ===Frequently Asked Questions=== ;The field generated by this module does cause errors in a downstream module? :Although ITKImageField and ITKLatVolField mimic parts of the field data object, not every function is available in these objects and hence generating these objects will cause some modules to fail. Use the "Copy Data" option instead this should prevent some conversion options. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] 1707 1705 2006-11-09T20:23:48Z Jeroen 19 /* '''ImageToField''' */ wikitext text/x-wiki =='''ImageToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert an ITK Image object into a Field object. ====Detailed Description==== Converts an ITK Image to a SCIRun Field. If the radiobutton "Reference ITK Image Data" is selected, then the data is not copied and an ITKImageField or ITKLatVolField will result. If the "Copy Data" option is selected, the data is copied and an ImageField or LatVolField will be created. This module will convert Scalar Data Vector Data, and RGBPixel data. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] 3845 1707 2006-11-09T20:25:56Z Jeroen 19 /* '''ImageToField''' */ wikitext text/x-wiki =='''ImageToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a Field object into a ITK Image. ====Detailed Description==== This module converts a Field into an ITK image. This module only works if the field is a Image or a LatVolMesh. Any other field class will result in an error. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:Image2DToImage3D 0 1702 3847 2006-11-09T20:20:45Z Jeroen 19 wikitext text/x-wiki =='''Image2DToImage3D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a 2D ITK image into a 3D ITK image. ====Detailed Description==== This module allows you to cast an 2D image to 3D image. The resulting 3D image will have a single slice. See the [http://www.itk.org ITK web site] for detailed information on the itk::CastImageFilter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:Image3DToImage2D 0 1703 3848 2006-11-09T20:21:53Z Jeroen 19 wikitext text/x-wiki =='''Image3DToImage2D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Extract the first slice of a 3D ITK object. ====Detailed Description==== This module allows you to cast an image to a lower dimension, the first "slice" (or line or volume) will be extracted. If you want to convert an image to a lower dimension and specify the subspace (i.e. which slice of a volume, etc.) then you should use ExtractImageFilter. See the <ulink text="http://www.itk.org">ITK web site</ulink> for detailed information on the itk::CastImageFilter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ImageToField 0 1704 1706 2006-11-09T20:23:03Z Jeroen 19 wikitext text/x-wiki =='''ImageToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert an image to a SCIRun field. ====Detailed Description==== Converts an ITK Image to a Field. If the radiobutton "Reference ITK Image Data" is selected, then the data is not copied and an ITKImageField or ITKLatVolField will result. If the "Copy Data" option is selected, the data is copied and an ImageField or LatVolField will be created. This module will convert Scalar Data Vector Data, and RGBPixel data. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] 3849 1706 2006-11-09T20:24:12Z Jeroen 19 wikitext text/x-wiki =='''ImageToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert an image to a SCIRun field. ====Detailed Description==== Converts an ITK Image to a Field. If the radiobutton "Reference ITK Image Data" is selected, then the data is not copied and an ITKImageField or ITKLatVolField will result. If the "Copy Data" option is selected, the data is copied and an ImageField or LatVolField will be created. This module will convert Scalar Data Vector Data, and RGBPixel data. ---- ===Frequently Asked Questions=== ;The field generated by this module does cause errors in a downstream module? :Although ITKImageField and ITKLatVolField mimic parts of the field data object, not every function is available in these objects and hence generating these objects will cause some modules to fail. Use the "Copy Data" option instead this should prevent some conversion options. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ImageToNrrd 0 1705 3846 2006-11-09T20:26:35Z Jeroen 19 wikitext text/x-wiki =='''ImageToNrrd'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert an ITK Image to a NRRD. ====Detailed Description==== Convert an ITK Image to a NRRD. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:NrrdToImage 0 1706 3850 2006-11-09T20:27:22Z Jeroen 19 wikitext text/x-wiki =='''NrrdToImage'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert a NRRD to an ITK Image. ====Detailed Description==== Convert a NRRD to an ITK Image. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:RGBPixelToVector 0 1707 3851 2006-11-09T20:28:21Z Jeroen 19 wikitext text/x-wiki =='''RGBPixelToVector'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Convert an image of type itk::RGBPixel to an image of type itk::Vector. ====Detailed Description==== Converts an image of type itk::RGBPixel to an image of type itk::Vector. See the [http://www.itk.org ITK web site] for detailed information on the itk::VectorCastImageFilter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:VectorToRGBPixel 0 1708 3852 2006-11-09T20:29:18Z Jeroen 19 wikitext text/x-wiki =='''VectorToRGBPixel'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Converters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Converts an image of type itk::Vector to an image of type itk::RGBPixel. ====Detailed Description==== Converts an image of type itk::Vector to an image of type itk::RGBPixel. See the [http://www.itk.org ITK web site] for detailed information on the itk::VectorCastImageFilter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight 0 1695 1709 1708 2006-11-09T20:32:46Z Jeroen 19 /* '''Converters''' */ wikitext text/x-wiki =='''Insight Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Converters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:BuildSeedVolume|BuildSeedVolume]] :This module converts a point cloud of doubles into a binary ITK Image of unsigned chars. ;[[CIBC:Documentation:SCIRun:Reference:Insight:FieldToImage|FieldToImage]] :This module converts a Field into an ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:Image2DToImage3D|Image2DToImage3D]] :This module converts a 2D ITK Image into a 3D ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:Image3DToImage2D|Image3DToImage2D]] :This module extracts the first slice from the 3D ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageToField|ImageToField]] :This module converts an ITK image into a field. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageToNrrd|ImageToNrrd]] :This module converts an ITK image into a nrrd. ;[[CIBC:Documentation:SCIRun:Reference:Insight:NrrdToImage|NrrdToImage]] :This module converts a nrrd into an ITK image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:RGBPixelToVector|RGBPixelToVector]] :This module changes the ITK image from an RGB to a vector representation. ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorToRGBPixel|VectorToRGBPixel]] :This module changes the ITK image from a vector to an RGB representation. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:ChooseImage|ChooseImage]] :ChooseImage takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat2D|ColorImageReaderFloat2D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat3D|ColorImageReaderFloat3D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageFileWriter|ImageFileWriter]] :Writes an ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat2D|ImageReaderFloat2D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat3D|ImageReaderFloat3D]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:SliceReader|SliceReader]] :Read in a 3D volume a slice at a time. ==='''Filters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryDilateImageFilter|BinaryDilateImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryErodeImageFilter|BinaryErodeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryThresholdImageFilter|BinaryThresholdImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CannySegmentationLevelSetImageFilter|CannySegmentationLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ConfidenceConnectedImageFilter|ConfidenceConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ConnectedThresholdImageFilter|ConnectedThresholdImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CurvatureAnisotropicDiffusionImageFilter|CurvatureAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CurvatureFlowImageFilter|CurvatureFlowImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:DiscreteGaussianImageFilter|DiscreteGaussianImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ExtractImageFilter|ExtractImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GeodesicActiveContourLevelSetImageFilter|GeodesicActiveContourLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientAnisotropicDiffusionImageFilter|GradientAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientMagnitudeImageFilter|GradientMagnitudeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientRecursiveGaussianImageFilter|GradientRecursiveGaussianImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleDilateImageFilter|GrayscaleDilateImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleErodeImageFilter|GrayscaleErodeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:IsolatedConnectedImageFilter|IsolatedConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:MeanImageFilter|MeanImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:NeighborhoodConnectedImageFilter|NeighborhoodConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ReflectImageFilter|ReflectImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:RescaleIntensityImageFilter|RescaleIntensityImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ThresholdSegmentationLevelSetImageFilter|ThresholdSegmentationLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:UnaryFunctorImageFilter|UnaryFunctorImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorConfidenceConnectedImageFilter|VectorConfidenceConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorCurvatureAnisotropicDiffusionImageFilter|VectorCurvatureAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorGradientAnisotropicDiffusionImageFilter|VectorGradientAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorIndexSelectionCastImageFilter|VectorIndexSelectionCastImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:WatershedImageFilter|WatershedImageFilter]] : ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 3839 1709 2006-11-09T20:41:33Z Jeroen 19 /* '''DataIO''' */ wikitext text/x-wiki =='''Insight Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Converters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:BuildSeedVolume|BuildSeedVolume]] :This module converts a point cloud of doubles into a binary ITK Image of unsigned chars. ;[[CIBC:Documentation:SCIRun:Reference:Insight:FieldToImage|FieldToImage]] :This module converts a Field into an ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:Image2DToImage3D|Image2DToImage3D]] :This module converts a 2D ITK Image into a 3D ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:Image3DToImage2D|Image3DToImage2D]] :This module extracts the first slice from the 3D ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageToField|ImageToField]] :This module converts an ITK image into a field. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageToNrrd|ImageToNrrd]] :This module converts an ITK image into a nrrd. ;[[CIBC:Documentation:SCIRun:Reference:Insight:NrrdToImage|NrrdToImage]] :This module converts a nrrd into an ITK image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:RGBPixelToVector|RGBPixelToVector]] :This module changes the ITK image from an RGB to a vector representation. ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorToRGBPixel|VectorToRGBPixel]] :This module changes the ITK image from a vector to an RGB representation. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:ChooseImage|ChooseImage]] :ChooseImage takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat2D|ColorImageReaderFloat2D]] :This module reads a 2D color image as an ITK image of floats. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat3D|ColorImageReaderFloat3D]] :This module reads a 3D color image as an ITK image of floats. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageFileWriter|ImageFileWriter]] :This module exports an ITK Image. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat2D|ImageReaderFloat2D]] :This module reads a 2D image as an ITK image of floats. ;[[CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat3D|ImageReaderFloat3D]] :This module reads a 3D image as an ITK image of floats. ;[[CIBC:Documentation:SCIRun:Reference:Insight:SliceReader|SliceReader]] :This module reads a 3D volume a slice at a time. ==='''Filters'''=== ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryDilateImageFilter|BinaryDilateImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryErodeImageFilter|BinaryErodeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:BinaryThresholdImageFilter|BinaryThresholdImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CannySegmentationLevelSetImageFilter|CannySegmentationLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ConfidenceConnectedImageFilter|ConfidenceConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ConnectedThresholdImageFilter|ConnectedThresholdImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CurvatureAnisotropicDiffusionImageFilter|CurvatureAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:CurvatureFlowImageFilter|CurvatureFlowImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:DiscreteGaussianImageFilter|DiscreteGaussianImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ExtractImageFilter|ExtractImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GeodesicActiveContourLevelSetImageFilter|GeodesicActiveContourLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientAnisotropicDiffusionImageFilter|GradientAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientMagnitudeImageFilter|GradientMagnitudeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GradientRecursiveGaussianImageFilter|GradientRecursiveGaussianImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleDilateImageFilter|GrayscaleDilateImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleErodeImageFilter|GrayscaleErodeImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:IsolatedConnectedImageFilter|IsolatedConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:MeanImageFilter|MeanImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:NeighborhoodConnectedImageFilter|NeighborhoodConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ReflectImageFilter|ReflectImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:RescaleIntensityImageFilter|RescaleIntensityImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:ThresholdSegmentationLevelSetImageFilter|ThresholdSegmentationLevelSetImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:UnaryFunctorImageFilter|UnaryFunctorImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorConfidenceConnectedImageFilter|VectorConfidenceConnectedImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorCurvatureAnisotropicDiffusionImageFilter|VectorCurvatureAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorGradientAnisotropicDiffusionImageFilter|VectorGradientAnisotropicDiffusionImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:VectorIndexSelectionCastImageFilter|VectorIndexSelectionCastImageFilter]] : ;[[CIBC:Documentation:SCIRun:Reference:Insight:WatershedImageFilter|WatershedImageFilter]] : ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:Insight:ChooseImage 0 1709 3853 2006-11-09T20:34:22Z Jeroen 19 wikitext text/x-wiki =='''ChooseImage'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: DataIO :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ChooseImage takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ====Detailed Description==== ChooseImage takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. If the Use first valid image option is checked, the module will disregard the port index and iterate over the input ports, passing the first valid data downstream. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat2D 0 1710 3854 2006-11-09T20:35:18Z Jeroen 19 wikitext text/x-wiki =='''ColorImageReaderFloat2D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: DataIO :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module uses the itk::ImageFileReader to read in a 2D Color Image as floats. ====Detailed Description==== This module uses the itk::ImageFileReader to read in a 2D Color Image as floats. The output is an image of Vectors of size three. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ColorImageReaderFloat3D 0 1711 3855 2006-11-09T20:36:08Z Jeroen 19 wikitext text/x-wiki =='''ColorImageReaderFloat3D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: DataIO :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module uses the itk::ImageFileReader to read in a 3D Color Image as floats. ====Detailed Description==== This module uses the itk::ImageFileReader to read in a 3D Color Image as floats. The output is an image of Vectors of size three. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ImageFileWriter 0 1712 3856 2006-11-09T20:36:53Z Jeroen 19 wikitext text/x-wiki =='''ImageFileWriter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: DataIO :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Writes an ITK Image. ====Detailed Description==== This module writes out an ITK Image in either Meta Image format, PNG, or JPG. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat2D 0 1713 3857 2006-11-09T20:38:04Z Jeroen 19 wikitext text/x-wiki =='''ImageReaderFloat2D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: DataIO :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module uses the itk::ImageFileReader to read in a 2D Image as floats. ====Detailed Description==== This module uses the itk::ImageFileReader to read in a 2D Image as floats. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ImageReaderFloat3D 0 1714 3858 2006-11-09T20:38:48Z Jeroen 19 wikitext text/x-wiki =='''ImageReaderFloat3D'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: DataIO :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module uses the itk::ImageFileReader to read in a 2D Image as floats. ====Detailed Description==== This module uses the itk::ImageFileReader to read in a 2D Image as floats. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:SliceReader 0 1715 3859 2006-11-09T20:39:24Z Jeroen 19 wikitext text/x-wiki =='''SliceReader'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: DataIO :Author(s): Darby Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Read in a 3D volume a slice at a time. ====Detailed Description==== Read in a 3D volume a slice at a time. Slicing is done along the last axis. This module currently only works for the case of an Analyze header file (.hdr) and Analyze image file (.img). The basename of these files must be the same and the image file cannot be compressed. If Cast Output is checked, the output image will be cast to a float image. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:WatershedImageFilter 0 1716 1710 2006-11-09T20:42:57Z Jeroen 19 wikitext text/x-wiki =='''WatershedImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using WatershedImageFilter. ====Detailed Description==== A low-level image analysis algorithm that automatically produces a hierarchy of segmented, labeled images from a scalar-valued image input. This module encapsulates the functionality of the ITK Filter itk::WatershedImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] 3860 1710 2006-11-09T20:43:15Z Jeroen 19 /* Information */ wikitext text/x-wiki =='''WatershedImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using WatershedImageFilter. ====Detailed Description==== A low-level image analysis algorithm that automatically produces a hierarchy of segmented, labeled images from a scalar-valued image input. This module encapsulates the functionality of the ITK Filter itk::WatershedImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:VectorIndexSelectionCastImageFilter 0 1717 3861 2006-11-09T20:44:39Z Jeroen 19 wikitext text/x-wiki =='''VectorIndexSelectionCastImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using VectorIndexSelectionCastImageFilter. ====Detailed Description==== Extracts the selected index of the vector that is the input pixel type. This module encapsulates the functionality of the ITK Filter itk::VectorIndexSelectionCastImageFilter. See the [www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:VectorGradientAnisotropicDiffusionImageFilter 0 1718 1711 2006-11-09T20:45:43Z Jeroen 19 wikitext text/x-wiki =='''VectorGradientAnisotropicDiffusionImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Fiter image using VectorGradientAnisotropicDiffusionImageFilter. ====Detailed Description==== This filter performs anisotropic diffusion on a vector itk::Image using the anisotropic diffusion function implemented implemented in itkVectorGradientNDAnisotropicDiffusionFunction. For detailed information on anisotropic diffusion see itkAnisotropicDiffusionFunction, itkVectorGradientNDAnisotropicDiffusionFunction, and itkGradientAnisotropicDiffusionFunction. This module encapsulates the functionality of the ITK Filter itk::VectorGradientAnisotropicDiffusionImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] 3862 1711 2006-11-09T20:46:05Z Jeroen 19 /* Information */ wikitext text/x-wiki =='''VectorGradientAnisotropicDiffusionImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Fiter image using VectorGradientAnisotropicDiffusionImageFilter. ====Detailed Description==== This filter performs anisotropic diffusion on a vector itk::Image using the anisotropic diffusion function implemented implemented in itkVectorGradientNDAnisotropicDiffusionFunction. For detailed information on anisotropic diffusion see itkAnisotropicDiffusionFunction, itkVectorGradientNDAnisotropicDiffusionFunction, and itkGradientAnisotropicDiffusionFunction. This module encapsulates the functionality of the ITK Filter itk::VectorGradientAnisotropicDiffusionImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Project:Matlab 0 1076 1713 1712 2006-11-09T20:46:48Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functions such as contour(...), surf(...), mesh(...), etc? 9) How to create a combined visualization within SCIRun? 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 1734 1713 2006-11-09T20:52:29Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functions such as contour(...), surf(...), mesh(...), etc? 9) How to create a combined visualization within SCIRun? 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. CIBC:Documentation:SCIRun:Reference:Insight:VectorCurvatureAnisotropicDiffusionImageFilter 0 1719 3863 2006-11-09T20:47:14Z Jeroen 19 wikitext text/x-wiki =='''VectorCurvatureAnisotropicDiffusionImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using VectorCurvatureAnisotropicDiffusionImageFilter ====Detailed Description==== This filter performs anisotropic diffusion on a vector itk::Image using the modified curvature diffusion equation (MCDE) implemented in itkVectorCurvatureNDAnisotropicDiffusionFunction. For detailed information on anisotropic diffusion and the MCDE see itkAnisotropicDiffusionFunction, itkVectorCurvatureNDAnisotropicDiffusionFunction, and itkCurvatureNDAnisotropicDiffusionFunction. This module encapsulates the functionality of the ITK Filter itk::VectorCurvatureAnisotropicDiffusionImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:VectorConfidenceConnectedImageFilter 0 1720 3864 2006-11-09T20:49:01Z Jeroen 19 wikitext text/x-wiki =='''VectorConfidenceConnectedImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using VectorConfidenceConnectedImageFilter. ====Detailed Description==== This filter extracts a connected set of pixels whose pixel intensities are consistent with the pixel statistics of a seed point. The mean and variance across a neighborhood (8-connected, 26-connected, etc.) are calculated for a seed point. Then pixels connected to this seed point whose values are within the confidence interval for the seed point are grouped. The width of the confidence interval is controlled by the "Multiplier" variable (the confidence interval is the mean plus or minus the "Multiplier" times the standard deviation). If the intensity variations across a segment were gaussian, a "Multiplier" setting of 2.5 would define a confidence interval wide enough to capture 99% of samples in the segment. After this initial segmentation is calculated, the mean and variance are re-calculated. All the pixels in the previous segmentation are used to calculate the mean the standard deviation (as opposed to using the pixels in the neighborhood of the seed point). The segmentation is then recalculted using these refined estimates for the mean and variance of the pixel values. This process is repeated for the specified number of iterations. Setting the "NumberOfIterations" to zero stops the algorithm after the initial segmentation from the seed point. NOTE: the lower and upper threshold are restricted to lie within the valid numeric limits of the input data pixel type. Also, the limits may be adjusted to contain the seed point's intensity. This module encapsulates the functionality of the ITK Filter itk::VectorConfidenceConnectedImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:UnaryFunctorImageFilter 0 1721 3865 2006-11-09T20:49:48Z Jeroen 19 wikitext text/x-wiki =='''UnaryFunctorImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using UnaryFunctorImageFilter. ====Detailed Description==== Implements pixel-wise generic operation on one image. This module encapsulates the functionality of the ITK Filter itk::UnaryFunctorImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ThresholdSegmentationLevelSetImageFilter 0 1722 3866 2006-11-09T20:50:29Z Jeroen 19 wikitext text/x-wiki =='''ThresholdSegmentationLevelSetImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using ThresholdSegmentationLevelSetImageFilter ====Detailed Description==== Segments structures in images based on image features derived from pseudo-canny-edges. This module encapsulates the functionality of the ITK Filter itk::ThresholdSegmentationLevelSetImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:RescaleIntensityImageFilter 0 1723 3867 2006-11-09T20:51:34Z Jeroen 19 wikitext text/x-wiki =='''RescaleIntensityImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using RescaleIntensityImageFilter. ====Detailed Description==== Applies pixel-wise a linear transformation to the intensity values of input image pixels. The linear transformation is defined by the user in terms of the minimum and maximum values that the output image should have. This module encapsulates the functionality of the ITK Filter itk::RescaleIntensityImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ReflectImageFilter 0 1724 3868 2006-11-09T20:52:31Z Jeroen 19 wikitext text/x-wiki =='''ReflectImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using ReflectImageFilter. ====Detailed Description==== Implements a Reflection of an image along a selected direction. This class is parameterized over the type of the input image and the type of the output image. This module encapsulates the functionality of the ITK Filter itk::ReflectImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:NeighborhoodConnectedImageFilter 0 1725 3869 2006-11-09T20:53:38Z Jeroen 19 wikitext text/x-wiki =='''NeighborhoodConnectedImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using NeighborhoodConnectedImageFilter. ====Detailed Description==== Label pixels that are connected to a seed and lie within a neighborhood. This module encapsulates the functionality of the ITK Filter itk::NeighborhoodConnectedImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:MeanImageFilter 0 1726 3870 2006-11-09T20:55:00Z Jeroen 19 wikitext text/x-wiki =='''MeanImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using MeanImageFilter. ====Detailed Description==== Applies an averaging filter to an image. Computes an image where a given pixel is the mean value of the the pixels in a neighborhood about the corresponding input pixel. This module encapsulates the functionality of the ITK Filter itk::MeanImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:IsolatedConnectedImageFilter 0 1727 3871 2006-11-09T20:55:48Z Jeroen 19 wikitext text/x-wiki =='''IsolatedConnectedImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using IsolatedConnectedImageFilter. ====Detailed Description==== Label pixels that are connected to one seed but not another. IsolatedConnectedImageFilter labels pixels with ReplaceValue that are connected to Seed1 AND NOT connected to Seed2. The filter adjusts the upper threshold until the two seeds are not connected. The user supplies a Lower threshold. The algorithm uses a binary search to adjust the upper threshold, starting at UpperValueLimit. UpperValueLimit defaults to the largest possible value for the InputImagePixelType. This module encapsulates the functionality of the ITK Filter itk::IsolatedConnectedImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleErodeImageFilter 0 1728 3872 2006-11-09T20:56:32Z Jeroen 19 wikitext text/x-wiki =='''GrayscaleErodeImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== Gray scale erosion of an image. Erode an image using grayscale morphology. Erosion takes the minimum of all the pixels identified by the structuring element. The structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:GrayscaleDilateImageFilter 0 1729 3873 2006-11-09T20:57:04Z Jeroen 19 wikitext text/x-wiki =='''GrayscaleDilateImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== Gray scale dilation of an image. Dilate an image using grayscale morphology. Dilation takes the maximum of all the pixels identified by the structuring element. The structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:GradientRecursiveGaussianImageFilter 0 1730 3874 2006-11-09T20:57:56Z Jeroen 19 wikitext text/x-wiki =='''GradientRecursiveGaussianImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using GradientRecursiveGaussianImageFilter. ====Detailed Description==== Computes the gradient of an image by convolution with the first derivative of a Gaussian. This module encapsulates the functionality of the ITK Filter itk::GradientRecursiveGaussianImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:GradientMagnitudeImageFilter 0 1731 3875 2006-11-09T20:58:57Z Jeroen 19 wikitext text/x-wiki =='''GradientMagnitudeImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using GradientMagnitudeImageFilter. ====Detailed Description==== Computes the gradient magnitude of an image region at each pixel. This module encapsulates the functionality of the ITK Filter itk::GradientMagnitudeImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:GradientAnisotropicDiffusionImageFilter 0 1732 3876 2006-11-09T20:59:51Z Jeroen 19 wikitext text/x-wiki =='''GradientAnisotropicDiffusionImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using GradientAnisotropicDiffusionImageFilter. ====Detailed Description==== This filter performs anisotropic diffusion on a scalar itk::Image using the classic Perona-Malik, gradient magnitude based equation implemented in itkGradientNDAnisotropicDiffusionFunction. This module encapsulates the functionality of the ITK Filter itk::GradientAnisotropicDiffusionImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:GeodesicActiveContourLevelSetImageFilter 0 1733 3877 2006-11-09T21:00:38Z Jeroen 19 wikitext text/x-wiki =='''GeodesicActiveContourLevelSetImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Robert Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using GeodesicActiveContourLevelSetImageFilter. ====Detailed Description==== This module encapsulates the functionality of the ITK Filter itk::GeodesicActiveContourLevelSetImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ExtractImageFilter 0 1734 3878 2006-11-09T21:01:09Z Jeroen 19 wikitext text/x-wiki =='''ExtractImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Darby J Van Uitert :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== ====Detailed Description==== Decrease the image size by cropping the image to the selected region bounds. ExtractImageFilter changes the image boundary of an image by removing pixels outside the target region. The target region must be specified. ExtractImageFilter also collapses dimensions so that the input image may have more dimensions than the output image (i.e. 4-D input image to a 3-D output image). To specify what dimensions to collapse, the ExtractionRegion must be specified. For any dimension dim where ExtractionRegion.Size[dim] = 0, that dimension is collapsed. The index to collapse on is specified by ExtractionRegion.Index[dim]. For example, we have a image 4D = a 4x4x4x4 image, and we want to get a 3D image, 3D = a 4x4x4 image, specified as [x,y,z,2] from 4D (i.e. the 3rd "time" slice from 4D). The ExtractionRegion.Size = [4,4,4,0] and ExtractionRegion.Index = [0,0,0,2]. The number of dimension in ExtractionRegion.Size and Index must = InputImageDimension. The number of non-zero dimensions in ExtractionRegion.Size must = OutputImageDimension. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:DiscreteGaussianImageFilter 0 1735 3879 2006-11-09T21:01:58Z Jeroen 19 wikitext text/x-wiki =='''DiscreteGaussianImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using DiscreteGaussianImageFilter. ====Detailed Description==== Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian blurring by separable convolution of an image and a discrete Gaussian operator (kernel). This module encapsulates the functionality of the ITK Filter itk::DiscreteGaussianImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:CurvatureFlowImageFilter 0 1736 1714 2006-11-09T21:02:52Z Jeroen 19 wikitext text/x-wiki =='''CurvatureFlowImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using CurvatureFlowImageFilter. ====Detailed Description==== Denoise an image using curvature driven flow. CurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso-brightness contours in the grayscale input image are viewed as a level set. The advantage of this approach is that sharp boundaries are preserved with smoothing occuring only within a region. However, it should be noted that continuous application of this scheme will result in the eventual removal of all information as each contour shrinks to zero and disappear. Note that unlike level set segmentation algorithms, the image to be denoised is already the level set and can be set directly as the input using the SetInput() method. This filter has two parameters: the number of update iterations to be performed and the timestep between each update. The timestep should be "small enough" to ensure numerical stability. Stability is guarantee when the timestep meets the CFL (Courant-Friedrichs-Levy) condition. Broadly speaking, this condition ensures that each contour does not move more than one grid position at each timestep. In the literature, the timestep is typically user specified and have to manually tuned to the application. This filter make use of the multi-threaded finite difference solver hierarchy. Updates are computed using a CurvatureFlowFunction object. A zero flux Neumann boundary condition when computing derivatives near the data boundary. This filter may be streamed. To support streaming this filter produces a padded output which takes into account edge effects. The size of the padding is m_NumberOfIterations on each edge. Users of this filter should only make use of the center valid central region. Warning: This filter assumes that the input and output types have the same dimensions. This filter also requires that the output image pixels are of a floating point type. This filter works for any dimensional images. This module encapsulates the functionality of the ITK Filter itk::CurvatureFlowImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] 3880 1714 2006-11-09T21:03:08Z Jeroen 19 /* Information */ wikitext text/x-wiki =='''CurvatureFlowImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using CurvatureFlowImageFilter. ====Detailed Description==== Denoise an image using curvature driven flow. CurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso-brightness contours in the grayscale input image are viewed as a level set. The advantage of this approach is that sharp boundaries are preserved with smoothing occuring only within a region. However, it should be noted that continuous application of this scheme will result in the eventual removal of all information as each contour shrinks to zero and disappear. Note that unlike level set segmentation algorithms, the image to be denoised is already the level set and can be set directly as the input using the SetInput() method. This filter has two parameters: the number of update iterations to be performed and the timestep between each update. The timestep should be "small enough" to ensure numerical stability. Stability is guarantee when the timestep meets the CFL (Courant-Friedrichs-Levy) condition. Broadly speaking, this condition ensures that each contour does not move more than one grid position at each timestep. In the literature, the timestep is typically user specified and have to manually tuned to the application. This filter make use of the multi-threaded finite difference solver hierarchy. Updates are computed using a CurvatureFlowFunction object. A zero flux Neumann boundary condition when computing derivatives near the data boundary. This filter may be streamed. To support streaming this filter produces a padded output which takes into account edge effects. The size of the padding is m_NumberOfIterations on each edge. Users of this filter should only make use of the center valid central region. Warning: This filter assumes that the input and output types have the same dimensions. This filter also requires that the output image pixels are of a floating point type. This filter works for any dimensional images. This module encapsulates the functionality of the ITK Filter itk::CurvatureFlowImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:CurvatureAnisotropicDiffusionImageFilter 0 1737 3881 2006-11-09T21:04:12Z Jeroen 19 wikitext text/x-wiki =='''CurvatureAnisotropicDiffusionImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using CurvatureAnisotropicDiffusionImageFilter. ====Detailed Description==== This filter performs anisotropic diffusion on a scalar itk::Image using the modified curvature diffusion equation (MCDE) implemented in itkCurvatureNDAnisotropicDiffusionFunction. For detailed information on anisotropic diffusion and the MCDE see itkAnisotropicDiffusionFunction and itkCurvatureNDAnisotropicDiffusionFunction. This module encapsulates the functionality of the ITK Filter itk::CurvatureAnisotropicDiffusionImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ConnectedThresholdImageFilter 0 1738 3882 2006-11-09T21:05:10Z Jeroen 19 wikitext text/x-wiki =='''ConnectedThresholdImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter data using ConnectedThresholdImageFilter. ====Detailed Description==== Label pixels that are connected to a seed and lie within a range of values. This module encapsulates the functionality of the ITK Filter itk::ConnectedThresholdImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:Insight:ConfidenceConnectedImageFilter 0 1739 3883 2006-11-09T21:05:57Z Jeroen 19 wikitext text/x-wiki =='''ConfidenceConnectedImageFilter'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] :Catagory: Filters :Author(s): Automatically generated by SCIRun Code Generator :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Filter image using ConfidenceConnectedImageFilter. ====Detailed Description==== This filter extracts a connected set of pixels whose pixel intensities are consistent with the pixel statistics of a seed point. The mean and variance across a neighborhood (8-connected, 26-connected, etc.) are calculated for a seed point. Then pixels connected to this seed point whose values are within the confidence interval for the seed point are grouped. The width of the confidence interval is controlled by the "Multiplier" variable (the confidence interval is the mean plus or minus the "Multiplier" times the standard deviation). If the intensity variations across a segment were gaussian, a "Multiplier" setting of 2.5 would define a confidence interval wide enough to capture 99% of samples in the segment. After this initial segmentation is calculated, the mean and variance are re-calculated. All the pixels in the previous segmentation are used to calculate the mean the standard deviation (as opposed to using the pixels in the neighborhood of the seed point). The segmentation is then recalculted using these refined estimates for the mean and variance of the pixel values. This process is repeated for the specified number of iterations. Setting the "NumberOfIterations" to zero stops the algorithm after the initial segmentation from the seed point. NOTE: the lower and upper threshold are restricted to lie within the valid numeric limits of the input data pixel type. Also, the limits may be adjusted to contain the seed point's intensity. This module encapsulates the functionality of the ITK Filter itk::ConfidenceConnectedImageFilter. See the [http://www.itk.org ITK web site] for detailed information on this filter. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:Insight|Insight]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportBundlesToMatlab 0 1645 1716 1715 2006-11-09T21:07:18Z Jeroen 19 /* Module Description */ wikitext text/x-wiki =='''ExportBundlesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportBundlesToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ====Detailed Description==== ====Module Description==== The ExportBundlesToMatlab module exports SCIRun Bundle objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file.Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] 1717 1716 2006-11-09T21:07:37Z Jeroen 19 /* See Also */ wikitext text/x-wiki =='''ExportBundlesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportBundlesToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ====Detailed Description==== ====Module Description==== The ExportBundlesToMatlab module exports SCIRun Bundle objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file.Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] 3784 1717 2006-11-09T21:08:02Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ExportBundlesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportBundlesToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ====Detailed Description==== The ExportBundlesToMatlab module exports SCIRun Bundle objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file.Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportDatatypesToMatlab 0 1647 1720 1718 2006-11-09T21:09:23Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ExportDatatypesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportDatatypesToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ====Detailed Description==== ====Module Description==== The ExportDatatypesToMatlab module exports SCIRun Field, Matrix, and Nrrd objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. This module combines the functionality of the MatlabFieldsWriter, the MatlabMatricesWriter, and The MatlabNrrdsWriter. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file. Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] 3786 1720 2006-11-09T21:10:31Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ExportDatatypesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportDatatypesToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ====Detailed Description==== The ExportDatatypesToMatlab module exports SCIRun Field, Matrix, and Nrrd objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. This module combines the functionality of the MatlabFieldsWriter, the MatlabMatricesWriter, and The MatlabNrrdsWriter. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file. Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportFieldsToMatlab 0 1649 3788 1719 2006-11-09T21:10:06Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ExportFieldsToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportFieldsToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ====Detailed Description==== The ExportFieldsToMatlab module exports SCIRun Field objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. All fields except for Scanline, Images, and LatVols will be stored as structured matrices. Only Scanlines, Images and LatVols have the possiblity to be stored as dense matrices. The format in which the fields are exported is described in the documentation of the MatlabFieldsReader module. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file. Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportMatricesToMatlab 0 1651 3790 1721 2006-11-09T21:11:09Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ExportMatricesToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportMatricesToMatlab module saves a SCIRun matrix in a MATLAB .mat file ====Detailed Description==== The ExportMatricesToMatlab module exports SCIRun matrices into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. Each of these matrices can be formatted into different formats. Firstly, the datatype of the matrix can be altered. Since matrices in matlab are able to use multiple dataformats, casting the data within the module may be a convenient way of saving space. Secondly, the module has the option to export the data as a structured matrix. This has the advantage that additional properties can be exported to matlab as well. Currently this feature is only used to export the values stored in the property manager, however future version may export more properties of the SCIRun matrix object. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file.Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportNrrdsToMatlab 0 1653 3792 1722 2006-11-09T21:11:47Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ExportNrrdsToMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ExportNrrdsToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ====Detailed Description==== The ExportNrrdsToMatlab module exports SCIRun NRRD objects into a MATLAB compatible .mat file. Currently this module supports the fileformat of MATLAB version 5 and higher. The module has multiple input ports that can be used to store multiple MATLAB arrays in one file. Each of these matrices can be formatted into different formats. Firstly, the datatype of the matrix can be altered. Since matrices in matlab are able to use multiple dataformats, casting the data within the module may be a convenient way of saving space. Secondly, the module has the option to export the data as a structured matrix. This has the advantage that additional properties can be exported to matlab as well. Currently this feature is only used to export the values stored in the property manager and the properties stored in the NRRD axis, like units, spacing, etc. Setting up the GUI: Select a filename for the MATLAB file that needs to be created. You can use the BROWSE button to select an existing file.Setup the format of each matrix and change the names of the matrices to the ones you want to use in MATLAB. Execute the module and the file will be written. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportBundlesFromMatlab 0 1655 3795 1723 2006-11-09T21:12:24Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ImportBundlesFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportBundlesFromMatlab module reads a matrix from a MATLAB .mat file and exports it as a bundle ====Detailed Description==== This module reads a N-dimensional matrix from MATLAB .mat files and exports this matrix as a Bundle object. Currently only files from matlab version 5 and higher are supported by this module. The module reads dense matrices of any of the supported data classes in matlab (short, int, double, etc.). Sparse matrices however are not supported by this module. Use the MODULE REFERENCE module to read sparse matrices. In order to facilitate the selection process the module will list all matrices in the file that are compatible with the SCIRun Bundle class and will select the most obvious one as a default. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the matrix data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the PORT buttons and then select the MATLAB matrix you want to load on that outport. Note that for convenience the first suitable matrix in the file is automatically connected to port 1, when a MATLAB file is opened. Hence, if your file only contains one field, you can skip this step as the matrix will be selected automatically. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportColorMapsFromMatlab 0 1657 3797 1724 2006-11-09T21:12:52Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ImportColorMapsFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportColorMapsFromMatlab module reads a matrix from a MATLAB file ====Detailed Description==== ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportDatatypesFromMatlab 0 1659 3799 1725 2006-11-09T21:15:03Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ImportDatatypesFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportDatatypesFromMatlab module reads SCIRun fields, SCIRun Matrices, and SCIRun Nrrds from a MATLAB file. ====Detailed Description==== This module takes a specially prepared MATLAB file and converts it into a SCIRun Field, Matrix, or Nrrd object. Currently only files from matlab version 5 and higher are supported by this module. The GUI of the module lets the user choose one MATLAB file and subsequently displays all the matrices inside the file. Currently the implementation only shows those MATLAB matrices for which a suitable converter exists, the other ones are not shown. Hence, if your MATLAB matrix does not show up in the selection window the module does not know how to translate the that data set into a SCIRun Field object. Since, a MATLAB file can contain multiple MATLAB matrices, the module is equipped with nine output ports. Three for SCIRun Fields, three for SCIRun matrices, and three for SCIRun Nrrds. By selecting the port the module will show which conversion options are available. This module is a combination of the MatlabFieldsReader, the MatlabNrrdsReader and the MatlabMatricesReader and is intended as a way of using one matlab file to specify fields and the accompaning data. Especially since time data cannot yet be stored in a field this module allows the time data to exist as a separate datastream from the same file. This will limit the amount of files that need to be reloaded when all the data is contained in one matlab file. Depending on how the user configures the module, each output port can represent one of the MATLAB matrices in the file. Hence, multiple geometries/fields/matrices/nrrds can be stored in the same MATLAB file. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the geometry/field/matrices/nrrds data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the FIELD/MATRIX/NRRD buttons and then select the MATLAB matrix you want to load on that outport. A FIELD port exports the data as a field, a MATRIX port as a scirun matrix and a NRRD port as a scirun nrrd object. Note that for convenience the first suitable matrix in the file is automatically for the FIELD 1 port. Matrices and nrrds need to be selected before they appear on an output port. ==== Preparing MATLAB files for SCIRun Fields ==== One crucial step for the conversion from MATLAB to SCIRun is a proper preparation of the data files. Since a SCIRun field object is a complex entity, a simple numeric dense matrix is difficult to translate. Hence, it is required that you build a STRUCTURED MATRIX in matlab with some of the fields listed below. Based on the fields that are supplied the data is converted in one of the many types of geometries available in SCIRun. The module will try to match the data you supplied with the closest Field object it finds. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun: Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix >> save mymesh.mat geom Opening the file with the MatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; >> save myfield field This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; >> save myfield2 field ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportFieldsFromMatlab 0 1661 3801 1726 2006-11-09T21:17:29Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ImportFieldsFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportFieldsFromMatlab module reads a SCIRun field from a MATLAB file. ====Detailed Description==== This module takes a specially prepared MATLAB file and converts it into a SCIRun Field object. Currently only files from matlab version 5 and higher are supported by this module. The GUI of the module lets the user choose one MATLAB file and subsequently displays all the matrices inside the file. Currently the implementation only shows those MATLAB matrices for which a suitable converter exists, the other ones are not shown. Hence, if your MATLAB matrix does not show up in the selection window the module does not know how to translate the that data set into a SCIRun Field object. Since, a MATLAB file can contain multiple MATLAB matrices, the module is equipped with six output ports. Depending on how the user configures the module, each output port can represent one of the MATLAB matrices in the file. Hence, multiple geometries/fields can be stored in the same MATLAB file. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the geometry/field data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the PORT buttons and then select the MATLAB matrix you want to load on that outport. Note that for convenience the first suitable matrix in the file is automatically connected to port 1, when a MATLAB file is opened. Hence, if your file only contains one field, you can skip this step as the matrix will be selected automatically. ==== Preparing MATLAB files for SCIRun Fields ==== One crucial step for the conversion from MATLAB to SCIRun is a proper preparation of the data files. Since a SCIRun field object is a complex entity, a simple numeric dense matrix is difficult to translate. Hence, it is required that you build a STRUCTURED MATRIX in matlab with some of the fields listed below. Based on the fields that are supplied the data is converted in one of the many types of geometries available in SCIRun. The module will try to match the data you supplied with the closest Field object it finds. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun: Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix >> save mymesh.mat geom Opening the file with the ImportFieldsFromMatlab module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; >> save myfield field This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; >> save myfield2 field ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportMatricesFromMatlab 0 1663 3804 1727 2006-11-09T21:18:10Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ImportMatricesFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportMatricesFromMatlab module reads a matrix from a MATLAB file ====Detailed Description==== This module imports matrices from MATLAB .mat files. Currently only files from matlab version 5 and higher are supported by this module. The module reads both dense and sparse matrices of any of the supported data classes in matlab (short, int, double, etc.). Currently the SCIRun matrix class only supports doubles, hence every matrix is casted into a double matrix. In order to facilitate the selection process the module will list all matrices in the file that are compatible with the SCIRun matrix class and will select the most obvious one as a default. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the matrix data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the PORT buttons and then select the MATLAB matrix you want to load on that outport. Note that for convenience the first suitable matrix in the file is automatically connected to port 1, when a MATLAB file is opened. Hence, if your file only contains one field, you can skip this step as the matrix will be selected automatically. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportNrrdsFromMatlab 0 1665 3806 1728 2006-11-09T21:18:43Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''ImportNrrdsFromMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== The ImportNrrdsFromMatlab module reads a matrix from a MATLAB .mat file and exports it as a Nrrd ====Detailed Description==== This module reads a N-dimensional matrix from MATLAB .mat files and exports this matrix as a Nrrd object. Currently only files from matlab version 5 and higher are supported by this module. The module reads dense matrices of any of the supported data classes in matlab (short, int, double, etc.). Sparse matrices however are not supported by this module. Use the MODULE REFERENCE module to read sparse matrices. In order to facilitate the selection process the module will list all matrices in the file that are compatible with the SCIRun NRRD class and will select the most obvious one as a default. Follow the next two steps in order to setup the GUI properly: Choose the MATLAB file that contains the matrix data. You can either use the BROWSE button to select a file or enter the filename in the filename entry on top of the GUI and press the OPEN button to list the contents of the file in the listbox in the center of the GUI. Next the MATLAB matrices in the file need to be connected to an output port. In order to do this click on one of the PORT buttons and then select the MATLAB matrix you want to load on that outport. Note that for convenience the first suitable matrix in the file is automatically connected to port 1, when a MATLAB file is opened. Hence, if your file only contains one field, you can skip this step as the matrix will be selected automatically. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface 0 1090 3230 1729 2006-11-09T21:19:17Z Jeroen 19 /* '''DataIO''' */ wikitext text/x-wiki =='''MatlabInterface Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportBundlesToMatlab|ExportBundlesToMatlab]] :The ExportBundlesToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportDatatypesToMatlab|ExportDatatypesToMatlab]] :The ExportDatatypesToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportFieldsToMatlab|ExportFieldsToMatlab]] :The ExportFieldsToMatlab Module saves a SCIRun Field object into a MATLAB .mat file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportMatricesToMatlab|ExportMatricesToMatlab]] :The ExportMatricesToMatlab module saves a SCIRun matrix in a MATLAB .mat file ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ExportNrrdsToMatlab|ExportNrrdsToMatlab]] :The ExportNrrdsToMatlab Module saves a SCIRun NRRD object into a MATLAB .mat file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportBundlesFromMatlab|ImportBundlesFromMatlab]] :The ImportBundlesFromMatlab module reads a matrix from a MATLAB .mat file and exports it as a bundle ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportColorMapsFromMatlab|ImportColorMapsFromMatlab]] :The ImportColorMapsFromMatlab module reads a matrix from a MATLAB file ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportDatatypesFromMatlab|ImportDatatypesFromMatlab]] :The ImportDatatypesFromMatlab module reads SCIRun fields, SCIRun Matrices, and SCIRun Nrrds from a MATLAB file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportFieldsFromMatlab|ImportFieldsFromMatlab]] :The ImportFieldsFromMatlab module reads a SCIRun field from a MATLAB file. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportMatricesFromMatlab|ImportMatricesFromMatlab]] :The ImportMatricesFromMatlab module reads a matrix from a MATLAB file ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:ImportNrrdsFromMatlab|ImportNrrdsFromMatlab]] :The ImportNrrdsFromMatlab module reads a matrix from a MATLAB .mat file and exports it as a Nrrd ==='''Interface'''=== ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab|InterfaceWithMatlab]] :Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ;[[CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlabViaBundles|InterfaceWithMatlabViaBundles]] :Interactive Matlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. The difference with the normal Matlab module is that this one uses bundles as input and output to allow for a more flexible interface. Since the use of bundles is more complicated, the Matlab module should be used if fields or matrices need to be adjusted. But for more complicated projects, this module allows for more flexibility. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab 0 1071 1731 1730 2006-11-09T21:19:45Z Jeroen 19 /* Overview */ wikitext text/x-wiki =='''InterfaceWithMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ====Detailed Description==== ====Overview==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the InterfaceWithMatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the InterfaceWithMatlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each InterfaceWithMatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple InterfaceWithMatlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:Reference_MatlabInterface_GUIpic1.png|The three main panels of the GUI and what they represent]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another InterfaceWithMatlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure CROSS REFERENCE. [[Image:Reference_MatlabInterface_GUIpic2.png|The SCIRun to matlab translation panel]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. This matlabconverter is the same as used by the modules MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to InterfaceWithMatlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:Reference_MatlabInterface_GUIpic3.png|GUI for determining where MATLAB should be run]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple InterfaceWithMatlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:Reference_MatlabInterface_GUIpic4.png|The panel for running code in matlab]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ====Translation of FIELDS==== The following is an incomplete overview of the translation between SCIRun and MATLAB field objects. The following describes how fields are to be prepared in matlab for it to be used in SCIRun. The opposite process will be done for the input ports. Note that there one can specify whether one ones a structured or numerical matlab array. In case of numerical array only the data from the field is taken and the rest is thrown away. In case of a structured matlab array the data is fitted into a structure with the same fields as described below. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". This field can be a number as well, which will describe the basis order of the element. The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun: Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix Opening the file with the InterfaceWithMatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; ====See Also ==== MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] 1733 1731 2006-11-09T21:22:18Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''InterfaceWithMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ====Detailed Description==== ====Overview==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the InterfaceWithMatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the InterfaceWithMatlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each InterfaceWithMatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple InterfaceWithMatlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:Reference_MatlabInterface_GUIpic1.png|The three main panels of the GUI and what they represent]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another InterfaceWithMatlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure CROSS REFERENCE. [[Image:Reference_MatlabInterface_GUIpic2.png|The SCIRun to matlab translation panel]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. This matlabconverter is the same as used by the modules MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to InterfaceWithMatlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:Reference_MatlabInterface_GUIpic3.png|GUI for determining where MATLAB should be run]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple InterfaceWithMatlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:Reference_MatlabInterface_GUIpic4.png|The panel for running code in matlab]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ====Translation of FIELDS==== The following is an incomplete overview of the translation between SCIRun and MATLAB field objects. The following describes how fields are to be prepared in matlab for it to be used in SCIRun. The opposite process will be done for the input ports. Note that there one can specify whether one ones a structured or numerical matlab array. In case of numerical array only the data from the field is taken and the rest is thrown away. In case of a structured matlab array the data is fitted into a structure with the same fields as described below. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". This field can be a number as well, which will describe the basis order of the element. The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun. Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix Opening the file with the InterfaceWithMatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] 3207 1733 2006-11-09T21:24:27Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''InterfaceWithMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ====Detailed Description==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the InterfaceWithMatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the InterfaceWithMatlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each InterfaceWithMatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple InterfaceWithMatlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:Reference_MatlabInterface_GUIpic1.png|The three main panels of the GUI and what they represent]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another InterfaceWithMatlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure CROSS REFERENCE. [[Image:Reference_MatlabInterface_GUIpic2.png|The SCIRun to matlab translation panel]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. This matlabconverter is the same as used by the modules MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to InterfaceWithMatlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:Reference_MatlabInterface_GUIpic3.png|GUI for determining where MATLAB should be run]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple InterfaceWithMatlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:Reference_MatlabInterface_GUIpic4.png|The panel for running code in matlab]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ====Translation of FIELDS==== The following is an incomplete overview of the translation between SCIRun and MATLAB field objects. The following describes how fields are to be prepared in matlab for it to be used in SCIRun. The opposite process will be done for the input ports. Note that there one can specify whether one ones a structured or numerical matlab array. In case of numerical array only the data from the field is taken and the rest is thrown away. In case of a structured matlab array the data is fitted into a structure with the same fields as described below. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". This field can be a number as well, which will describe the basis order of the element. The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun. Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix Opening the file with the InterfaceWithMatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlabViaBundles 0 1668 3809 1732 2006-11-09T21:23:49Z Jeroen 19 /* Description */ wikitext text/x-wiki =='''InterfaceWithMatlabViaBundles'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive Matlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. The difference with the normal Matlab module is that this one uses bundles as input and output to allow for a more flexible interface. Since the use of bundles is more complicated, the Matlab module should be used if fields or matrices need to be adjusted. But for more complicated projects, this module allows for more flexibility. ====Detailed Description==== This module is an extension of the Matlab module. Please review the documentation of this module for a more detailed description of the inner workings of the matlab interface. The main difference with the Matlab module is the way data is imported into MATLAB. This module uses the module concepts for transporting data. In short a bundle is a collection of SCIRun objects bundled into one stream. As the number of elements in a stream is only limited by the amount of memory that can be used, far more variables can be transported into and out of the module. However this comes with the price of a less straight forward representation of data in matlab. In this case all input and output matlab arrays are structures whose field can represent any of the SCIRun objects currently supported by the Matlab package. Note the currently colormaps and path streams are not supported, although they can be fit into a bundled stream, it is not available in a matlab representation. Converters for those classes will be implemented if they are needed. The bundle to matlab converter has some specific options as well. For matrices and nrrds the default behaviour is to convert them directly into a numeric dense or sparse matrix and all the other properties of the SCIRun object are stripped away, whereas fields are represented by a sub structure, with fields as defined by the MatlabFieldWriter. The options 'numeric array' and 'struct array' control how matrices and nrrds are converted. In case of 'numeric array' all nrrds and matrices will be dense or sparse matrices and the additional fields within the SCIRun object will be stripped away, such as axis names etc. This is the default behavior. In case of 'struct array' all the SCIRun Matrix and Nrrd objects will be translated into sub structures with all the additional SCIRun data put in the fields of this sub matrix. This module will always convert a field into a structure. The matlab to bundle converter is a little bit more complicated since there are more options for conversion. The first parameter controlling the conversion process is 'prefer matrices' or 'prefer nrrds'. This option controls whether a matrix is converted into a nrrd or a matrix. Of course, some objects like sparse matrices can only be represented by a SCIRun Matrix object and will hence be translated so. The same is true for matrices with a dimension higher than two, these can only become nrrds. For the others there are two representations possible, this option just specifies the preference the user has. Note that matrices and nrrds in the Bundled Stream can be inserted as nrrds and read out matrices. One thing one should keep in mind that in the matlab converter the first dimension of a nrrd is assumed to be the rows space and secondly the column space. Some functions expect the opposite order. Unfortunately the order is not specified in the nrrd object. In case you run into unexpected transposed matrices, use the built in function of the BundleGetMatrix and BundleGetNrrd to do these transpose operations. A second choice is whether the substructure represent bundles or scirun objects like fields, nrrds, and matrices. When a field in matlab is a dense, sparse or a string the conversion is obvious. However when it is a structure it can be split into a sub bundle with all the fields being separate objects or they can represent more complicate objects such as fields. The default option is 'prefer sciobjects', which will first try to see if the fields correspond to any of the object defined in SCIRun. For example when a subarray has a field called 'node' it will be translated into a field. If no suitable conversion can be found it will be translated into a bundle. In case of 'prefer bundles' all substructures will be bundles again. This means sno fields will be generated and the translation will be a bundle with subbundles that contain only nrrds and matrices. ====Overview Matlab/InterfaceWithMatlabViaBundles module mechanism==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the MatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the Matlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each MatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENIGNE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple Matlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:Project:Matlab 0 1076 1735 1734 2006-11-09T23:29:08Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 1736 1735 2006-11-09T23:56:49Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 1740 1736 2006-11-09T23:57:58Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 2087 1740 2006-11-14T00:02:13Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. File:Matlab2SCIRun.png 6 1740 3802 2006-11-13T23:58:28Z Dbrayford 43 wikitext text/x-wiki CIBC:Documentation:SCIRun:Reference:SCIRun 0 1095 1742 1741 2006-11-14T01:10:08Z Jeroen 19 /* '''DataIO''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (''.mat'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file. ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|AppendMatrix]] :Composite a matrix from components. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1747 1742 2006-11-14T01:17:44Z Jeroen 19 /* '''DataIO''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (a SCIRun ''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString|ReadString]] :This module reads a '''string''' from file (an ASCII text file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file (a SCIRun ''.fld'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString|WriteString]] :This module writes a '''string''' to file (an ASCII text file). ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|AppendMatrix]] :Composite a matrix from components. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1807 1747 2006-11-14T03:20:35Z Jeroen 19 /* '''Math''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (a SCIRun ''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString|ReadString]] :This module reads a '''string''' from file (an ASCII text file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file (a SCIRun ''.fld'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString|WriteString]] :This module writes a '''string''' to file (an ASCII text file). ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|CollectMatrices]] :This module appends/replaces rows or columns of a matrix while looping through a network. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1870 1807 2006-11-17T17:43:16Z Jeroen 19 /* '''ChangeFieldData''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldDataCompiled]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldDataCompiled2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldDataCompiled3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (a SCIRun ''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString|ReadString]] :This module reads a '''string''' from file (an ASCII text file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file (a SCIRun ''.fld'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString|WriteString]] :This module writes a '''string''' to file (an ASCII text file). ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|CollectMatrices]] :This module appends/replaces rows or columns of a matrix while looping through a network. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle 0 1539 1744 1743 2006-11-14T01:29:47Z Jeroen 19 /* Summary */ wikitext text/x-wiki =='''ReadBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a '''bundle''' dataflow from file. ====Detailed Description==== This module reads a '''bundle''' from disk. A bundle file has a .bdl extension and can be written with the BundleWriter module. In a bdl file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it in one file. ---- ===Frequently Asked Questions=== ;Does the bundle writer store duplicate objects twice in a file? :No, the bundle writer will detect whether objects are the same. For instance if two fields use the same mesh, the mesh is only stored once in the file. This way memory and space is conserved. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 3678 1744 2006-11-14T01:44:39Z Jeroen 19 wikitext text/x-wiki =='''ReadBundle'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a '''bundle''' from file. ====Detailed Description==== This module reads a '''bundle''' from file. A bundle file has a ''.bdl'' extension and can be written with the WriteBundle module. In a ''.bdl'' file every component is stored. Hence it can be used to group a lot of different SCIRun objects together and store it in one file. This module has one input port through which the user can define the name of the file that needs to be read. If this port is connected to a '''string''' dataflow object, this name is used instead the one entered in the GUI. This module has two output ports: the first port contains the bundle that was read and the second port contains a copy of the filename. Hence if one wants to annotate the results, this filename can be displayed using the ShowString module. ---- ===Frequently Asked Questions=== ;Does the bundle writer store duplicate objects twice in a file? :No, the bundle writer will detect whether objects are the same. For instance if two fields use the same mesh, the mesh is only stored once in the file. This way memory and space is conserved. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString 0 1741 3793 2006-11-14T02:36:06Z Jeroen 19 wikitext text/x-wiki =='''ReadString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module reads a '''string''' from file. ====Detailed Description==== This module reads a '''string''' from file. A string is in essence a text file and this module imports a text file as a string. The default extension used by SCIRun for text files is ''.txt'', although any file containing ASCII text can be read by this module. This module has one input port through which the user can define the name of the file that needs to be read. If this port is connected to a '''string''' dataflow object, this name is used instead the one entered in the GUI. This module has two output ports: the first port contains the bundle that was read and the second port contains a copy of the filename. Hence if one wants to annotate the results, this filename can be displayed using the ShowString module. ---- ===Frequently Asked Questions=== ;Is there a native SCIRun '''string''' format like there is for fields? :Yes, there is but it only used for embedding strings into other objects. As a string only contains text, the preferred way of exporting/importing a string is just writing/reading a text file. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString 0 1742 3884 2006-11-14T02:47:09Z Jeroen 19 wikitext text/x-wiki =='''WriteString'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: DataIO :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module writes a '''string''' to file. ====Detailed Description==== This module writes a '''string''' to file. By default this module will write a text This module has two input ports: the first port is the string to be exported to the text file and the second is an optional filename. If the latter is connected, this string is used as filename. If this port is unconnected the filename selected in the GUI is used. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix 0 1743 3885 2006-11-14T03:25:09Z Jeroen 19 CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix moved to CIBC:Documentation:SCIRun:Reference:SCIRun:CollectMatrices wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:SCIRun:CollectMatrices]] CIBC:Documentation:SCIRun:Reference:SCIRun:CollectMatrices 0 1425 3564 1748 2006-11-14T03:35:55Z Jeroen 19 wikitext text/x-wiki =='''CollectMatrices'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: Math :Author(s): David Weinstein :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module appends/replaces a column or a row in/to a matrix while looping through a network. ====Detailed Description==== This module appends, replaces, or prepends a column or row of a matrix. This module does on of these operations each time the module is executed. Hence the appending or replacing operation is in time. This module has two input ports: the first port is a base matrix, which is read the first time the module is executed, the matrix that needs to be appended is entered through the second input port. When the user wants to restart the network, he or she needs to clean this module as it would continue to collect matrices. To clear the matrices in the buffer of this module, hit the 'Clear Output' button in the GUI, which will reset this module. The UI has options to allow the user to select: Use the GUI to specify the operation which has to be performed each cycle of a network execution: the first column in the GUI specifies whether the module works on rows or columns, the second specifies whether one wants to add or replace the last column or row. The last column specifies whether a column/row is replaced at the start of the matrix (row 0 or column 0) or at the end of the matrix. '''NOTE''': This module scheduled to be replaced with a simplified version that will allow setting buffer lengths. When the new scheduler is ready this module will be changed. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] File:Cmake win 1.JPG 6 1744 3886 2006-11-14T19:54:30Z Darbyb 37 wikitext text/x-wiki File:CMakeLinuxCore.jpg 6 1745 3887 2006-11-14T20:02:08Z Darbyb 37 wikitext text/x-wiki File:CMakeLinuxCore2.jpg 6 1746 3888 2006-11-14T20:05:43Z Darbyb 37 Building SCIRun Core with CMake. wikitext text/x-wiki Building SCIRun Core with CMake. File:CMakeLinuxCore3.jpg 6 1747 3889 2006-11-14T20:06:07Z Darbyb 37 Last step of building SCIRun Core with CMake. wikitext text/x-wiki Last step of building SCIRun Core with CMake. CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled 0 1113 1809 1808 2006-11-17T17:43:52Z Jeroen 19 /* '''CalculateFieldData''' */ wikitext text/x-wiki =='''CalculateFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldDataCompiled :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform a specified functional transform on all of the data in a field. ====Detailed Description==== Compute the specified function on each data element in the input field. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are x, y, z, and v, where x, y, and z are the positions of the data point and v is the value of the input field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = x + v;" would return a new field containing the x position of each element added with the value that was already there. "result = v.x();" could be used to extract the x component of a vector field into a scalar field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 3252 1809 2006-11-17T17:44:05Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldDataCompiled'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldDataCompiled :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform a specified functional transform on all of the data in a field. ====Detailed Description==== Compute the specified function on each data element in the input field. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are x, y, z, and v, where x, y, and z are the positions of the data point and v is the value of the input field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = x + v;" would return a new field containing the x position of each element added with the value that was already there. "result = v.x();" could be used to extract the x component of a vector field into a scalar field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData 0 1756 1981 2006-11-17T17:45:21Z Jeroen 19 CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData moved to CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2 0 1757 1984 2006-11-17T17:46:17Z Jeroen 19 CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2 moved to CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled2 wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled2]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled2 0 1114 3253 1810 2006-11-17T17:46:48Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldDataCompiled2'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform a specified functional transform to each pair of data elements in the two input fields. ====Detailed Description==== Compute the specified function for each pair of corresponding data elements in the input fields. In order to correspond the data points, this module requires that the two input fields share the same mesh and have their data at the same location. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are the x, y, and z positions of the data point, v0 for the first field's data element and v1 for the second field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = v0 + v1;" would add each of the corresponding elements of the two fields. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3 0 1758 1986 2006-11-17T17:47:12Z Jeroen 19 CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3 moved to CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled3 wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled3]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled3 0 1115 3254 1811 2006-11-17T17:47:31Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldDataCompiled3'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Perform a specified functional transform on all of the data in a field. ====Detailed Description==== Compute the specified function for each tripple of corresponding data elements in the input fields. In order to correspond the data points, this module requires that the three input fields share the same mesh and have their data at the same location. The data transform is specified in the GUI as the body of a C++ function. The input values to the function are the x, y, and z positions of the data point, v0 for the first field's data element, v1 for the second field's data element, and v2 for the third field's data element. No value is returned, rather set the 'result' variable to the return type. For example, "result = v0 + v1 + v3;" would add each of the corresponding elements of the two fields. "result = Vector(v0, v1, v2);" would concatenate the values of three scalar fields into a vector field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] File:Ccmake dataflow 1.jpg 6 1759 3901 2006-11-27T16:02:20Z Darbyb 37 wikitext text/x-wiki File:CMakeWinCore1.jpg 6 1760 3906 2006-11-28T02:47:51Z Darbyb 37 wikitext text/x-wiki File:CMakeWinCore2.jpg 6 1761 3902 2006-11-28T02:56:58Z Darbyb 37 wikitext text/x-wiki File:CMakeWinCore3.jpg 6 1762 3903 2006-11-28T02:57:08Z Darbyb 37 wikitext text/x-wiki File:CMakeWinDataflow1.jpg 6 1763 3905 2006-11-28T03:05:03Z Darbyb 37 wikitext text/x-wiki File:CMakeWinDataflow2.jpg 6 1764 3904 2006-11-28T03:07:52Z Darbyb 37 wikitext text/x-wiki File:SCIRunIsosurfaceNet.jpg 6 1765 3907 2006-11-28T20:14:39Z Darbyb 37 wikitext text/x-wiki CIBC:Documentation:SCIRun:ReleaseNotes:3.0 0 1088 3227 1869 2006-11-28T22:04:55Z Jeroen 19 wikitext text/x-wiki == Release Notes for SCIRun/BioPSE Version 3.0 == :SCIRun Version 3.0 :Release date: December 12, 2006 :Includes: SCIRun (Core), Packages (BioPSE, Teem, MatlabInterface, ModelCreation) === New features === ====Installation==== * The make system has been converted to CMAKE (See Installation Guide for details). * The ThirdParty installation now includes the following packages: LibPNG, LibXML, FreeType, and Glew. All are required for SCIRun. * The following packages have been removed from ThirdParty: Xerces, ImageMagick. * ThirdParty can now be compiled using the same script for all supported operating systems ====Supported systems==== * Added support for Intel based Macintosh machines. * Discontinued support for OS X 10.3 or lower (SCIRun now requires the execution of static constructors upon loading a library). * SCIRun is now supported under Windows XP as well (with the exception of the interactive Matlab modules, which is supported by OS 10.4 and later) ====Visualization==== * The volume renderer supports now a label map (segmentation) to select a specific 2D colormap * The volume renderer has been rewritten to support larger volumes and automatic bricking if not enough memory is available * The viewer now supports the visualization of degenerate meshes * Data located on cell elements is now shown in the viewer using the colormap * SCIRun now has a model underlying each mesh type of how to interpolate data between nodes. * Added support for bilinear and trilinear interpolation. * Added support for visualization of non linear mesh types (Currently limited to visualization). ====Modeling==== * Finite element support has been completely rewritten and now both anisotropic as well as isotropic models are supported for each mesh class available in SCIRun. * A new module has been added that allows better creating Diriclet Boundary Conditions. ====Network Editor==== * The network editor now blocks all editing while a network is executing (In the next release we will enable this feature again if scheduling problems have been fixed). * Improved synchroniztion of Viewer and Network. * The network editor is now able to save relative filenames for increased portablity between systems. * Save As now displays the current name. * The network fileformat has been ported to XML. The new network files are now called .srn instead of the old .net files. ====Modules==== * All modules have been given a new name. ====Documentation==== * Documentation has been merged over into a Wiki, so users can help updating and documenting the software system. === Bug fixes === * Performance issues with Dense and Sparse matrix multiplications have been fixed. * Performance issues with isosurface generation have been fixed ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun 0 1095 1976 1870 2006-11-28T22:08:32Z Jeroen 19 /* '''Package Description''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== The SCIRun Core contains general modules that are not specific to one application field. ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldDataCompiled]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldDataCompiled2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldDataCompiled3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (a SCIRun ''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString|ReadString]] :This module reads a '''string''' from file (an ASCII text file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file (a SCIRun ''.fld'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString|WriteString]] :This module writes a '''string''' to file (an ASCII text file). ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|CollectMatrices]] :This module appends/replaces rows or columns of a matrix while looping through a network. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1978 1976 2006-12-12T17:27:42Z Jeroen 19 /* '''Package Description''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== The SCIRun Core contains general modules that are not specific to one application field. This documentation page contains documentation for each module in the SCIRun Core. ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldDataCompiled]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldDataCompiled2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldDataCompiled3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (a SCIRun ''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString|ReadString]] :This module reads a '''string''' from file (an ASCII text file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file (a SCIRun ''.fld'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString|WriteString]] :This module writes a '''string''' to file (an ASCII text file). ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|CollectMatrices]] :This module appends/replaces rows or columns of a matrix while looping through a network. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1983 1978 2006-12-12T18:02:14Z Jeroen 19 /* '''ChangeFieldData''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== The SCIRun Core contains general modules that are not specific to one application field. This documentation page contains documentation for each module in the SCIRun Core. ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToField|CalculateDistanceToField]] :Calculate the distance field to a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToFieldBoundary|CalculateDistanceToFieldBoundary]] :Calculate the distance field to a boundary of a given mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Calculate new data for the field given a function that uses field data, node location and element properties as input. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData2]] :Calculate new data for the field given a function that uses field data, node location and element properties as input, with a second input port for a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData3]] :Calculate new data for the field given a function that uses field data, node location and element properties as input, with a second and third input port for two additional fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldDataCompiled]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldDataCompiled2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldDataCompiled3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateInsideWhichField|CalculateInsideWhichField]] :Calculate inside which field of a number of given fields a certain element is located. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateIsInsideField|CalculateIsInsideField]] :Calculate whether an element of one field is inside the domain of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateSignedDistanceToField|CalculateSignedDistanceToField]] :Calculate the distance to a surface mesh and use the normal of the surface to determine on which side of the surface the element is located. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertIndicesToFieldData|ConvertIndicesToFieldData]] :Convert a field with indices as data values into a field with values assigned to each index using a lookup table. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateFieldData|CreateFieldData]] :This module assigns a value to each element or node of the mesh based on a given function, that is based on the location of nodes and elements and properties of the elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromElemToNode|MapFieldDataFromElemToNode]] :This module contains several filters for converting data that is stored in the elements to data that is stored in the nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromNodeToElem|MapFieldDataFromNodeToElem]] :This module contains several filters for converting data that is stored in the nodes to data that is stored in the elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData|SelectAndSetFieldData]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData2|SelectAndSetFieldData2]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. This module contains one additional field port to be used for selecting and setting data values. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData3|SelectAndSetFieldData3]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. This module contains two additional field ports to be used for selecting and setting data values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Report the quality of the elements of the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (a SCIRun ''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString|ReadString]] :This module reads a '''string''' from file (an ASCII text file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file (a SCIRun ''.fld'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString|WriteString]] :This module writes a '''string''' to file (an ASCII text file). ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|CollectMatrices]] :This module appends/replaces rows or columns of a matrix while looping through a network. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] 1985 1983 2006-12-12T19:00:48Z Jeroen 19 /* '''ChangeFieldData''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== The SCIRun Core contains general modules that are not specific to one application field. This documentation page contains documentation for each module in the SCIRun Core. ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToField|CalculateDistanceToField]] :Calculate the distance field to a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToFieldBoundary|CalculateDistanceToFieldBoundary]] :Calculate the distance field to a boundary of a given mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Calculate new data for the field given a function that uses field data, node location and element properties as input. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Calculate new data for the field given a function that uses field data, node location and element properties as input, with a second input port for a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Calculate new data for the field given a function that uses field data, node location and element properties as input, with a second and third input port for two additional fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldDataCompiled]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldDataCompiled2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldDataCompiled3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateInsideWhichField|CalculateInsideWhichField]] :Calculate inside which field of a number of given fields a certain element is located. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateIsInsideField|CalculateIsInsideField]] :Calculate whether an element of one field is inside the domain of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateSignedDistanceToField|CalculateSignedDistanceToField]] :Calculate the distance to a surface mesh and use the normal of the surface to determine on which side of the surface the element is located. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertIndicesToFieldData|ConvertIndicesToFieldData]] :Convert a field with indices as data values into a field with values assigned to each index using a lookup table. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateFieldData|CreateFieldData]] :This module assigns a value to each element or node of the mesh based on a given function, that is based on the location of nodes and elements and properties of the elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromElemToNode|MapFieldDataFromElemToNode]] :This module contains several filters for converting data that is stored in the elements to data that is stored in the nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromNodeToElem|MapFieldDataFromNodeToElem]] :This module contains several filters for converting data that is stored in the nodes to data that is stored in the elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData|SelectAndSetFieldData]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData2|SelectAndSetFieldData2]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. This module contains one additional field port to be used for selecting and setting data values. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData3|SelectAndSetFieldData3]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. This module contains two additional field ports to be used for selecting and setting data values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Report the quality of the elements of the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (a SCIRun ''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString|ReadString]] :This module reads a '''string''' from file (an ASCII text file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file (a SCIRun ''.fld'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString|WriteString]] :This module writes a '''string''' to file (an ASCII text file). ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|CollectMatrices]] :This module appends/replaces rows or columns of a matrix while looping through a network. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToField 0 1244 1872 1871 2006-11-28T22:13:48Z Jeroen 19 wikitext text/x-wiki =='''CalculateDistanceToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes the minimum distance between an object and the nodes in field or the center of the elements. ====Detailed Description==== This module computes the minimum distance between a node or an element (center of element) and a mesh. In case the object field is a point cloud the module computes the distance to the closest node, in case the object mesh is a curve it will find the closest distance to the curve, etc. The result is a field where the scalar values refer to the distances to the object field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRUn]] 1979 1872 2006-11-28T22:14:00Z Jeroen 19 /* Recent Changes */ wikitext text/x-wiki =='''CalculateDistanceToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes the minimum distance between an object and the nodes in field or the center of the elements. ====Detailed Description==== This module computes the minimum distance between a node or an element (center of element) and a mesh. In case the object field is a point cloud the module computes the distance to the closest node, in case the object mesh is a curve it will find the closest distance to the curve, etc. The result is a field where the scalar values refer to the distances to the object field. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] 3383 1979 2006-12-12T18:15:12Z Jeroen 19 /* '''CalculateDistanceToField''' */ wikitext text/x-wiki =='''CalculateDistanceToField'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes the minimum distance between an object (field or mesh )and the nodes in field or the center of the elements. ====Detailed Description==== This module computes the minimum distance between a node or an element (center of element) and a mesh. In case the object field is a point cloud the module computes the distance to the closest node, in case the object mesh is a curve it will find the closest distance to the curve, etc. The result is a field where the scalar values refer to the distances to the object field. The first input of this module is the field at which the distance field needs to be calculated, the second input port defines the field the distance to which needs to be calculated. If the original field has the data located on the nodes of the mesh, these nodes are used to calculate the distance to the field object, if the data is located on the elements the distance to the center of the elements is calculated. If no data is stored in the field, the distance to the nodes is calculated. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateDistanceToField 0 1766 3908 2006-11-28T22:14:25Z Jeroen 19 CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateDistanceToField moved to CIBC:Documentation:SCIRun:SCIRun:ModelCreation:CalculateDistanceToField wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:SCIRun:ModelCreation:CalculateDistanceToField]] File:ContourField.gif 6 1767 3909 2006-11-30T00:04:54Z Blackham 44 wikitext text/x-wiki File:Hexvol.gif 6 1768 3910 2006-11-30T00:05:40Z Blackham 44 wikitext text/x-wiki File:ImageField.gif 6 1769 3911 2006-11-30T00:05:53Z Blackham 44 wikitext text/x-wiki File:Pointcloud.gif 6 1770 3912 2006-11-30T00:06:06Z Blackham 44 wikitext text/x-wiki File:Prismvol.gif 6 1771 3913 2006-11-30T00:06:20Z Blackham 44 wikitext text/x-wiki File:Quadsurf.gif 6 1772 3914 2006-11-30T00:06:35Z Blackham 44 wikitext text/x-wiki File:ScanlineField.gif 6 1773 3915 2006-11-30T00:06:46Z Blackham 44 wikitext text/x-wiki File:StructHexVol2.gif 6 1774 3916 2006-11-30T00:06:59Z Blackham 44 wikitext text/x-wiki File:StructQuadSurf2.gif 6 1775 3917 2006-11-30T00:07:11Z Blackham 44 wikitext text/x-wiki File:Tetvol.gif 6 1776 3918 2006-11-30T00:07:25Z Blackham 44 wikitext text/x-wiki File:Trisurf.gif 6 1777 3919 2006-11-30T00:07:36Z Blackham 44 wikitext text/x-wiki File:Latticevol.gif 6 1778 3920 2006-11-30T00:09:58Z Blackham 44 wikitext text/x-wiki File:BlankSCIRun.gif 6 1779 3921 2006-11-30T00:24:55Z Blackham 44 wikitext text/x-wiki File:1 2.gif 6 1780 3922 2006-11-30T00:25:22Z Blackham 44 wikitext text/x-wiki File:1 2b.gif 6 1781 3923 2006-11-30T00:25:34Z Blackham 44 wikitext text/x-wiki File:Chap1Net.gif 6 1782 3924 2006-11-30T00:28:07Z Blackham 44 wikitext text/x-wiki Ubuntu Prerequisites(Available in Synaptic) 0 1784 3927 2006-11-30T21:01:17Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki == Package Pre-Requisites: Ubuntu == These packages maybe necessary in to have full functionality in building SCIRun: emacs, x-libs, xlibs-dev, flex, bison, subversion, libpng, smp kernel, libxaw, libxaw-dev, libglew, imagemagick, lapack, blas, g77, gcc,g++, make, cmake (version 2.2 available in Universe) Each is available in Synaptic Package Manager. For information on installing your graphics card in ubuntu see that section on the main page. Ubuntu Prerequisites(Packages to Install) 0 1785 3928 2006-11-30T23:46:18Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki ==Packages to Install on Ubuntu== Ubuntu is an easy to use Debian based linux OS which recongnizes most hardware and often "just works" with the exception of graphics card installation(see section on main page). It is also a minimal install and you make the the following packages may need the following packages in order to build SCIRUN. x-libs, xlibs-dev, flex, bison, subversion, libpng, smp kernel, libxaw, libxaw-dev, libglew, lapack, blas, g77, gcc, g++, make, cmake(available in Universe) Fortunately the synaptic package manager is an easy to use GUI for package management. For an introduction to using it see: https://help.ubuntu.com/6.06/ubuntu/desktopguide/C/index.html Ubuntu Prerequisites (Packages to Install) 0 1786 1946 2006-12-03T16:13:13Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki --SCIRun on Ubuntu-- Ubuntu comes with a relatively minimal install and several packages may be required. It is easy to get the necessary packages listed below vis the Synaptic package manager. Many packages are part of the initial basic install, but make sure these are installed before preceding: x-libs, xlibs-dev, flex, bison, subversion, libpng, smp kernel, libxaw, libxaw-dev, libglew, lapack, blas, g77, gcc,g++, make, cmake Several of these may have been added to the Standard Thirdparty. 2042 1946 2006-12-03T16:13:57Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Ubuntu comes with a relatively minimal install and several packages may be required. It is easy to get the necessary packages listed below vis the Synaptic package manager. Many packages are part of the initial basic install, but make sure these are installed before preceding: x-libs, xlibs-dev, flex, bison, subversion, libpng, smp kernel, libxaw, libxaw-dev, libglew, lapack, blas, g77, gcc,g++, make, cmake Several of these may have been added to the Standard Thirdparty. File:Prev g.gif 6 1788 3932 2006-12-05T18:42:12Z Darbyb 37 wikitext text/x-wiki File:Next g.gif 6 1789 3933 2006-12-05T18:42:27Z Darbyb 37 wikitext text/x-wiki File:Next.gif 6 1790 3934 2006-12-05T18:43:20Z Darbyb 37 wikitext text/x-wiki File:Up g.gif 6 1791 3935 2006-12-05T18:43:33Z Darbyb 37 wikitext text/x-wiki File:Index.gif 6 1792 3936 2006-12-05T18:45:47Z Darbyb 37 wikitext text/x-wiki CIBC:Seg3D 0 1793 3937 2006-12-11T20:35:57Z Cates 4 wikitext text/x-wiki =Seg3D User Guide= --[[User:Cates|Cates]] 13:35, 11 Dec 2006 (MST) ==Overview== This document describes the basic use of the Seg3D volume processing and segmentation tool. ==Tutorial== 1. Basics. Open file. Create layers. draw. erase. delete layer. save session. 2. Load session. Connected Component segmentation. Isosurface Edit result. Save segmentation file. Image procession. Image morphology. Multiple images. Levelsets. Main Page 0 1 1973 1972 2006-12-11T23:30:05Z Erikj 2 /* Seg3D */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== The release Seg3D is near. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1974 1973 2006-12-12T00:31:35Z Erikj 2 /* Please Participate! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <h3>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</h3> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== The release Seg3D is near. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 1975 1974 2006-12-12T00:32:37Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== The release Seg3D is near. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 2080 1975 2006-12-12T00:33:02Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== The release Seg3D is near. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Documentation Portal=== ;[[CIBC:Documentation| Documentation Portal]] :Access the SCIRun/BioPSE documentation tree ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] File:FieldReaderIcon.gif 6 1794 3925 2006-12-12T00:37:07Z Blackham 44 wikitext text/x-wiki CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix 0 1112 3251 1977 2006-12-12T17:39:54Z Jeroen 19 /* '''ApplyMappingMatrix''' */ wikitext text/x-wiki =='''ApplyMappingMatrix'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Michael Callahan :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Apply a mapping matrix to project the data from one field onto the mesh of another field. ====Detailed Description==== Mapping data from a '''source field''' to a '''destination field''' can be done in a two stage process. First one builds a mapping matrix that describes which linear combination of data values of the source field needs to be taken to form a value in the destination field and secondly one multiplies the data vector of the source data with this matrix to obtain the destination data vector. This module accomplishes the second stage of this process. In order to build a mapping matrix use the module '''BuildMappingMatrix''' in the MiscField category. The reason for splitting this process is to improve performance of the mapping. A second advantage of calculating the mapping matrix is that multiple mapping matrices can be built, which then can be multiplied to create the mapping matrix that spans a series of mesh operations. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:SCIRun:ModelCreation:CalculateDistanceToField 0 1795 3938 2006-12-12T18:10:32Z Jeroen 19 CIBC:Documentation:SCIRun:SCIRun:ModelCreation:CalculateDistanceToField moved to CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToField wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToField]] CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateDistanceToFieldBoundary 0 1796 3822 2006-12-12T18:16:27Z Jeroen 19 CIBC:Documentation:SCIRun:Reference:ModelCreation:CalculateDistanceToFieldBoundary moved to CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToFieldBoundary wikitext text/x-wiki #REDIRECT [[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToFieldBoundary]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToFieldBoundary 0 1245 3384 1980 2006-12-12T18:20:45Z Jeroen 19 /* '''CalculateDistanceToFieldBoundary''' */ wikitext text/x-wiki =='''CalculateDistanceToFieldBoundary'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module computes the minimum distance between the boundary of the field and the nodes in field or the center of the elements. ====Detailed Description==== This module computes the minimum distance between the boundary of the field and the nodes in field or the center of the elements. The first input of this module is the field on which we want to calculate the distance, the second input port is the field/mesh the distance to which we want to compute. If the input field has data contained on the nodes, the distance to the nodes of the mesh will be calculated, if the data is located at the elements, the distance to the center of the element will be calculated. If the input field contains no data, the distance to its nodes will be calculated. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData 0 1756 1982 1981 2006-12-12T18:58:34Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module calculates a new value for each value in the field data based on a user defined function. This function is based on a series of variables that is available for each data location. Once the function is defined, the module will walk through each data value and apply the function. ====Detailed Description==== ====Overview==== This module allows the computation of a new scalar, vector or tensor value for each data location in the field. The user define function can depend on a number of variables that are defined for each location: ====Input variables==== '''DATA''': This is the current value stored in the field (either on the element or the node location). '''X,Y,Z''': Cartesian coordinates of the node or element (center of the element) '''POS''': Vector with cartesian coordinates of the node or element '''A,B,C,...''': Input from additional matrix ports. The input matrix can have either 1 row or the same number of rows as there are values in the field. In case the matrix has one value this value is the same for each data location, in case it has multiple values the module iterates of the values in the same way it iterates over the data values of the field. The matrix input can have either 1 column, 3 columns, 6 or 9 columns. In case the matrix has 1 column values are assumed to be scalar values, in case the matrix has 3 columns it is assumed to contain vector values and in case it has either 6 or 9 columns it is assumed to be a tensor value (A 6 valued tensor is defined as xx, xy, xz, yy, yz, and zz). '''INDEX''': The index number of the element or node. '''SIZE''': The number of elements or nodes in the field (Depending on the input field type) '''ELEMENT''': Special access variable to access properties of the element. Currently only length, area, and volume are available to be called on this entity. In case one is iterating over the nodes, the node point is assumed to be the element, in case one is iterating of the elements, this variable is referring to the full element. ====Output variable==== '''RESULT''': The output needs to be stored in the variable RESULT. ====Available functions==== A list of available functions is available in the GUI of the module. Press on the button available functions to obtain a full overview of the current available functions to do Scalar/Vector/Tensor algebra and to view the functions that can be applied to the ELEMENT variable. ====Implementation==== The user defined function is currently being translated in a chunck of code that is compiled using the dynamic compiler, however the current plan is to replace the dynamic compiler with a simple parser. In the latter case not every C++ functionality will be available, and hence it is recommended to stay within the functions defined in the help of the module. ====Input ports==== The first input is the field whose data needs to be recalculated using a function. The second port is an optional port that allows the user to script the module with a user defined input function. This function will override the function given in the GUI of the module. The third and next ports are used to import a matrix. The first port corresponds to matrix A, the next to matrix B and so on. These ports can be used to do algebra with values stored as a matrix or can be used to enter scriptable scalar/vector/tensor values that can be defined elsewhere. ====Output port==== The module has one output port that has the newly defined values. ====Output data type==== As the function is parsed using the compiler, the output type cannot be guessed by the module, hence it needs to be set by the user to the correct data type. ---- ===Frequently Asked Questions=== ;The module shows up an error dialoge with code, what now? :This normally happens when the code in the module cannopt be parsed by the compiler. Check whether the algebra makes sense and whether the output type is correct. As the module does not parse the expressions, it does not know whether the output needs to be scalar, vector, or tensor. The user has to specify the correct output format currently. A second cause of the compiler not being able to compile the code is a typo in the expression or a missing semicolon at the end of the expression. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRuun]] 3898 1982 2006-12-12T18:59:18Z Jeroen 19 /* '''CalculateFieldData''' */ wikitext text/x-wiki =='''CalculateFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module calculates a new value for each value in the field data based on a user defined function. This function is based on a series of variables that is available for each data location. Once the function is defined, the module will walk through each data value and apply the function. ====Detailed Description==== ====Overview==== This module allows the computation of a new scalar, vector or tensor value for each data location in the field. The user define function can depend on a number of variables that are defined for each location: ====Input variables==== '''DATA''': This is the current value stored in the field (either on the element or the node location). '''X,Y,Z''': Cartesian coordinates of the node or element (center of the element) '''POS''': Vector with cartesian coordinates of the node or element '''A,B,C,...''': Input from additional matrix ports. The input matrix can have either 1 row or the same number of rows as there are values in the field. In case the matrix has one value this value is the same for each data location, in case it has multiple values the module iterates of the values in the same way it iterates over the data values of the field. The matrix input can have either 1 column, 3 columns, 6 or 9 columns. In case the matrix has 1 column values are assumed to be scalar values, in case the matrix has 3 columns it is assumed to contain vector values and in case it has either 6 or 9 columns it is assumed to be a tensor value (A 6 valued tensor is defined as xx, xy, xz, yy, yz, and zz). '''INDEX''': The index number of the element or node. '''SIZE''': The number of elements or nodes in the field. (Depending on the input field type) '''ELEMENT''': Special access variable to access properties of the element. Currently only length, area, and volume are available to be called on this entity. In case one is iterating over the nodes, the node point is assumed to be the element, in case one is iterating of the elements, this variable is referring to the full element. ====Output variable==== '''RESULT''': The output needs to be stored in the variable RESULT. ====Available functions==== A list of available functions is available in the GUI of the module. Press on the button available functions to obtain a full overview of the current available functions to do Scalar/Vector/Tensor algebra and to view the functions that can be applied to the ELEMENT variable. ====Implementation==== The user defined function is currently being translated in a chunck of code that is compiled using the dynamic compiler, however the current plan is to replace the dynamic compiler with a simple parser. In the latter case not every C++ functionality will be available, and hence it is recommended to stay within the functions defined in the help of the module. ====Input ports==== The first input is the field whose data needs to be recalculated using a function. The second port is an optional port that allows the user to script the module with a user defined input function. This function will override the function given in the GUI of the module. The third and next ports are used to import a matrix. The first port corresponds to matrix A, the next to matrix B and so on. These ports can be used to do algebra with values stored as a matrix or can be used to enter scriptable scalar/vector/tensor values that can be defined elsewhere. ====Output port==== The module has one output port that has the newly defined values. ====Output data type==== As the function is parsed using the compiler, the output type cannot be guessed by the module, hence it needs to be set by the user to the correct data type. ---- ===Frequently Asked Questions=== ;The module shows up an error dialoge with code, what now? :This normally happens when the code in the module cannopt be parsed by the compiler. Check whether the algebra makes sense and whether the output type is correct. As the module does not parse the expressions, it does not know whether the output needs to be scalar, vector, or tensor. The user has to specify the correct output format currently. A second cause of the compiler not being able to compile the code is a typo in the expression or a missing semicolon at the end of the expression. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRuun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2 0 1757 1987 1984 2006-12-12T19:04:58Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldData'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData2 :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module calculates a new value for each value in the field data based on a user defined function. This function is based on a series of variables that is available for each data location. Once the function is defined, the module will walk through each data value and apply the function. ====Detailed Description==== ====Overview==== This module allows the computation of a new scalar, vector or tensor value for each data location in the field. The user define function can depend on a number of variables that are defined for each location: ====Input variables==== '''DATA1''': This is the current value stored in the field (either on the element or the node location). '''DATA2''': This is the value stored in the field on the second input port (either on the element or the node location). '''X,Y,Z''': Cartesian coordinates of the node or element from the first input field (center of the element) '''POS''': Vector with cartesian coordinates of the node or element from the first input field. '''A,B,C,...''': Input from additional matrix ports. The input matrix can have either 1 row or the same number of rows as there are values in the field. In case the matrix has one value this value is the same for each data location, in case it has multiple values the module iterates of the values in the same way it iterates over the data values of the field. The matrix input can have either 1 column, 3 columns, 6 or 9 columns. In case the matrix has 1 column values are assumed to be scalar values, in case the matrix has 3 columns it is assumed to contain vector values and in case it has either 6 or 9 columns it is assumed to be a tensor value (A 6 valued tensor is defined as xx, xy, xz, yy, yz, and zz). '''INDEX''': The index number of the element or node. '''SIZE''': The number of elements or nodes in the field. (Depending on the input field type) '''ELEMENT''': Special access variable to access properties of the element. Currently only length, area, and volume are available to be called on this entity. In case one is iterating over the nodes, the node point is assumed to be the element, in case one is iterating of the elements, this variable is referring to the full element. ====Output variable==== '''RESULT''': The output needs to be stored in the variable RESULT. ====Available functions==== A list of available functions is available in the GUI of the module. Press on the button available functions to obtain a full overview of the current available functions to do Scalar/Vector/Tensor algebra and to view the functions that can be applied to the ELEMENT variable. ====Implementation==== The user defined function is currently being translated in a chunck of code that is compiled using the dynamic compiler, however the current plan is to replace the dynamic compiler with a simple parser. In the latter case not every C++ functionality will be available, and hence it is recommended to stay within the functions defined in the help of the module. ====Input ports==== The first input is the field whose data needs to be recalculated using a function. The second port is an optional port that allows the user to script the module with a user defined input function. This function will override the function given in the GUI of the module. The third and next ports are used to import a matrix. The first port corresponds to matrix A, the next to matrix B and so on. These ports can be used to do algebra with values stored as a matrix or can be used to enter scriptable scalar/vector/tensor values that can be defined elsewhere. ====Output port==== The module has one output port that has the newly defined values. ====Output data type==== As the function is parsed using the compiler, the output type cannot be guessed by the module, hence it needs to be set by the user to the correct data type. ---- ===Frequently Asked Questions=== ;The module shows up an error dialoge with code, what now? :This normally happens when the code in the module cannopt be parsed by the compiler. Check whether the algebra makes sense and whether the output type is correct. As the module does not parse the expressions, it does not know whether the output needs to be scalar, vector, or tensor. The user has to specify the correct output format currently. A second cause of the compiler not being able to compile the code is a typo in the expression or a missing semicolon at the end of the expression. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRuun]] CIBC:Documentation:SCIRun:Reference:SCIRun 0 1095 3232 1985 2006-12-12T19:06:26Z Jeroen 19 /* '''ChangeFieldData''' */ wikitext text/x-wiki =='''SCIRun Reference'''== ==='''Package Description'''=== The SCIRun Core contains general modules that are not specific to one application field. This documentation page contains documentation for each module in the SCIRun Core. ---- ==='''Module Reference'''=== ==='''Bundle'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetBundlesFromBundle|GetBundlesFromBundle]] :This module retrieves a '''bundle''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMap2sFromBundle|GetColorMap2sFromBundle]] :This module retrieves a '''colormap2''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColorMapsFromBundle|GetColorMapsFromBundle]] :This module retrieves a '''colormap''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldsFromBundle|GetFieldsFromBundle]] :This module retrieves a '''field''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetMatricesFromBundle|GetMatricesFromBundle]] :This module retrieves a '''matrix''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetNrrdsFromBundle|GetNrrdsFromBundle]] :This module retrieves a '''nrrd''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetPathsFromBundle|GetPathsFromBundle]] :This module retrieves a '''path''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetStringsFromBundle|GetStringsFromBundle]] :This module retrieves a '''string''' object from a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertBundlesIntoBundle|InsertBundlesIntoBundle]] :This module inserts a '''bundle''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMap2sIntoBundle|InsertColorMap2sIntoBundle]] :This module inserts a '''colormap2''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertColorMapsIntoBundle|InsertColorMapsIntoBundle]] :This module inserts a '''colormap''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertFieldsIntoBundle|InsertFieldsIntoBundle]] :This module inserts a '''field''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertMatricesIntoBundle|InsertMatricesIntoBundle]] :This module inserts a '''matrix''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertNrrdsIntoBundle|InsertNrrdsIntoBundle]] :This module inserts a '''nrrd''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertPathsIntoBundle|InsertPathsIntoBundle]] :This module inserts a '''path''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertStringsIntoBundle|InsertStringsIntoBundle]] :This module inserts a '''string''' object into a bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinBundles|JoinBundles]] :This module merges the contents of multiple bundles into one bundle. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportBundleInfo|ReportBundleInfo]] :This module lists all the objects stored in a bundle. ==='''ChangeFieldData'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ApplyMappingMatrix|ApplyMappingMatrix]] :Apply a mapping matrix to project the data from one field onto the mesh of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToField|CalculateDistanceToField]] :Calculate the distance field to a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateDistanceToFieldBoundary|CalculateDistanceToFieldBoundary]] :Calculate the distance field to a boundary of a given mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData|CalculateFieldData]] :Calculate new data for the field given a function that uses field data, node location and element properties as input. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2|CalculateFieldData2]] :Calculate new data for the field given a function that uses field data, node location and element properties as input, with a second input port for a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3|CalculateFieldData3]] :Calculate new data for the field given a function that uses field data, node location and element properties as input, with a second and third input port for two additional fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled|CalculateFieldDataCompiled]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled2|CalculateFieldDataCompiled2]] :Perform a specified functional transform to each pair of data elements in the two input fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldDataCompiled3|CalculateFieldDataCompiled3]] :Perform a specified functional transform on all of the data in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateGradients|CalculateGradients]] :Compute the derivative of a scalar field and output it as a vector field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateInsideWhichField|CalculateInsideWhichField]] :Calculate inside which field of a number of given fields a certain element is located. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateIsInsideField|CalculateIsInsideField]] :Calculate whether an element of one field is inside the domain of another field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateLatVolGradientsAtNodes|CalculateLatVolGradientsAtNodes]] :Compute the derivative of a scalar lattice and output it as a vector lattice. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateNodeNormals|CalculateNodeNormals]] :Make a new vector field that points to the input point. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateSignedDistanceToField|CalculateSignedDistanceToField]] :Calculate the distance to a surface mesh and use the normal of the surface to determine on which side of the surface the element is located. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateVectorMagnitudes|CalculateVectorMagnitudes]] :Computes the gradient of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldBasis|ConvertFieldBasis]] :ConvertFieldBasis can modify the location of data in the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldDataType|ConvertFieldDataType]] :ConvertFieldDataType is used to change the type of data associated with the field elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertIndicesToFieldData|ConvertIndicesToFieldData]] :Convert a field with indices as data values into a field with values assigned to each index using a lookup table. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromElemToNode|ConvertLatVolDataFromElemToNode]] :Make a new field with data at nodes instead of elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertLatVolDataFromNodeToElem|ConvertLatVolDataFromNodeToElem]] :Make a new field with data at elements instead of nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateFieldData|CreateFieldData]] :This module assigns a value to each element or node of the mesh based on a given function, that is based on the location of nodes and elements and properties of the elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromElemToNode|MapFieldDataFromElemToNode]] :This module contains several filters for converting data that is stored in the elements to data that is stored in the nodes. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromNodeToElem|MapFieldDataFromNodeToElem]] :This module contains several filters for converting data that is stored in the nodes to data that is stored in the elements. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataFromSourceToDestination|MapFieldDataFromSourceToDestination]] :The MapFieldDataFromSourceToDestination module takes two Fields as input, the first of which, Source, contains geometry and data values; the second, Destination, contains geometry only. MapFieldDataFromSourceToDestination takes a field and finds data values for the destination geometry and outputs the resulting Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVol|MaskLatVol]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MaskLatVolWithTriSurf|MaskLatVolWithTriSurf]] :Convert a LatVolField into a MaskedLatVolField and apply the given function to mask it out. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData|SelectAndSetFieldData]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData2|SelectAndSetFieldData2]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. This module contains one additional field port to be used for selecting and setting data values. ;[[CICB:Documentation:SCIRun:Reference:SCIRun:SelectAndSetFieldData3|SelectAndSetFieldData3]] :This module selects a function based on the input values of the field and then applies this function to assign a new value to the field. This module contains two additional field ports to be used for selecting and setting data values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMeshQualityMeasures|ReportMeshQualityMeasures]] :Report the quality of the elements of the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapFieldDataWithMatrixEntries|SwapFieldDataWithMatrixEntries]] :Add and remove data from a field. ==='''ChangeMesh'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertHexVolToTetVol|ConvertHexVolToTetVol]] :Convert a HexVolField into a TetVolField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMLVtoHV|ConvertMLVtoHV]] :Convert a LatVolField to a HexVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshCoordinateSystem|ConvertMeshCoordinateSystem]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToPointCloud|ConvertMeshToPointCloud]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMeshToUnstructuredMesh|ConvertMeshToUnstructuredMesh]] :Convert a structured field into an unstructured field for editing. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertQuadSurfToTriSurf|ConvertQuadSurfToTriSurf]] :Convert a QuadSurfField into a TriSurfField. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertRasterMeshToStructuredMesh|ConvertRasterMeshToStructuredMesh]] :Convert a regular lattice field into an structured field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertTVtoMLV|ConvertTVtoMLV]] :Convert a TetVolField to a MaskedLatVolField ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EditMeshBoundingBox|EditMeshBoundingBox]] :EditMeshBoundingBox is used to transform the field geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MapFieldDataToNodeCoordinate|MapFieldDataToNodeCoordinate]] :Replace a mesh coordinate with the scalar fdata values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SmoothMesh|SmoothMesh]] :Nodal movement to improve mesh quality. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SwapNodeLocationsWithMatrixEntries|SwapNodeLocationsWithMatrixEntries]] :Extract and change the positions of the nodes in a mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithFunction|TransformMeshWithFunction]] :Perform a specified functional transform on all of the points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformMeshWithTransform|TransformMeshWithTransform]] :Non-interactive geometric transform of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TransformPlanarMesh|TransformPlanarMesh]] :Non-interactive geometric transform of a field. ==='''DataIO'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadBundle|ReadBundle]] :This module reads a '''bundle''' from file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap|ReadColorMap]] :This module reads a '''colormap''' from file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadColorMap2|ReadColorMap2]] :This module reads a '''colormap2D''' from file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadField|ReadField]] :This module reads a '''field''' from file (a SCIRun ''.fld'' file and various other formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadMatrix|ReadMatrix]] :This module reads a '''matrix''' from file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadPath|ReadPath]] :This module reads a '''camera path''' from file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReadString|ReadString]] :This module reads a '''string''' from file (an ASCII text file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteBundle|WriteBundle]] :This module writes a '''bundle''' to file (a SCIRun ''.bdl'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap|WriteColorMap]] :This module writes a '''colormap''' to file (a SCIRun ''.cmap'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteColorMap2|WriteColorMap2]] :This module writes a '''colormap2D''' to file (a SCIRun ''.cmap2'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteField|WriteField]] :This module writes a '''field''' to file (a SCIRun ''.fld'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteMatrix|WriteMatrix]] :This module writes a '''matrix''' to file (a SCIRun ''.mat'' file and various other file formats using a plugin system). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WritePath|WritePath]] :This module writes a '''camera path''' to file (a SCIRun ''.path'' file). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:WriteString|WriteString]] :This module writes a '''string''' to file (an ASCII text file). ==='''Examples'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputField|GetInputField]] :Most basic example of Field Input in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetInputFieldAndSendAsOutput|GetInputFieldAndSendAsOutput]] :Most basic example of Field Output in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintHelloWorldToScreen|PrintHelloWorldToScreen]] :Most basic example SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldDataValues|SetFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValues|SetTetVolFieldDataValues]] :Most basic example manipulating Field data in a SCIRun module. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetTetVolFieldDataValuesToZero|SetTetVolFieldDataValuesToZero]] :Most basic example manipulating Field data in a SCIRun module. ==='''Math'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:AppendMatrix|CollectMatrices]] :This module appends/replaces rows or columns of a matrix while looping through a network. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildNoiseColumnMatrix|BuildNoiseColumnMatrix]] :Performs the unary matrix operation transpose. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseMatrix|ChooseMatrix]] :ChooseMatrix takes in an arbitrary number of input matrices, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMappingMatrixToMaskVector|ConvertMappingMatrixToMaskVector]] :Converts a Mapping Matrix to a Mask Vector ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMaskVectorToMappingMatrix|ConvertMaskVectorToMappingMatrix]] :Converts a Mask Vector to a Mapping Matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatrixType|ConvertMatrixType]] :Casts a matrix ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateGeometricTransform|CreateGeometricTransform]] :Build a 4x4 geometric transformation matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateMatrix|CreateMatrix]] :This module lets the user create a small dense matrix manually. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgBinary|EvaluateLinAlgBinary]] :Performs one of a number of selectable matrix operations using the two input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgGeneral|EvaluateLinAlgGeneral]] :Do some linear algebra on input matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:EvaluateLinAlgUnary|EvaluateLinAlgUnary]] :Performs one of a number of selectable unary matrix operations to the input matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetColumnMatrixFromMatrix|GetColumnMatrixFromMatrix]] :The GetColumnMatrixFromMatrix module allows users to select a single row or column from a matrix. The user can also select a range of rows or columns and send them to the output port one at a time. The GetColumnMatrixFromMatrix module has three input ports: Matrix, Weight Vector and Current Index, which may run concurrently or one at a time. This module allows the user to animate points on a mesh if computing a whole time series of results packaged within a row or column. As data propogates throughout the image, the Viewer window displays the animation of points on the mesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSubmatrix|GetSubmatrix]] :Select a subset of a matrix. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportColumnMatrixMisfit|ReportColumnMatrixMisfit]] :Compute and visualize error between two vectors. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportMatrixInfo|ReportMatrixInfo]] :ReportMatrixInfo is used to view the attributes of matrices. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveLinearSystem|SolveLinearSystem]] :The SolveLinearSystem module is used to solve the linear system Ax=b, where A is a given Matrix, b is a given right-hand-side vector, and the user wants to find the solution vector x. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SolveMinNormLeastSqSystem|SolveMinNormLeastSqSystem]] :This module computes the minimal norm, least squared solution to a nx3 linear system. ==='''MiscField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMappingMatrix|BuildMappingMatrix]] :Build a mapping matrix -- a matrix that says how to project the data from one field onto the data of a second field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildMatrixOfSurfaceNormals|BuildMatrixOfSurfaceNormals]] :The BuildMatrixOfSurfaceNormals calculates area weighted normal Vectors per node. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:BuildPointCloudToLatVolMappingMatrix|BuildPointCloudToLatVolMappingMatrix]] :Builds mapping matrix that projects data from a PointCloud to a LatVol ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseField|ChooseField]] :ChooseField takes in an arbitrary number of input fields, and pass one of them downstream, based on the port index typed in the UI. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CoregisterPointClouds|CoregisterPointClouds]] :CoregisterPointClouds the first three points of two PointCloudFields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldGeometryMeasures|ReportFieldGeometryMeasures]] :Build a densematrix, where each row is a particular measure of the input Field (e.g. the x-values, or the element size). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportFieldInfo|ReportFieldInfo]] :ReportFieldInfo is used to view the attributes of fields. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportScalarFieldStats|ReportScalarFieldStats]] :Analyze data from a scalarfield. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportSearchGridInfo|ReportSearchGridInfo]] :Output a LatVolField that matches the search grid of the input field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SelectFieldROIWithBoxWidget|SelectFieldROIWithBoxWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldOrMeshStringProperty|SetFieldOrMeshStringProperty]] :Set a Property for a Field (or for its mesh). ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SetFieldProperty|SetFieldProperty]] :Set a Property for a Field. ==='''NewField'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldByFunction|ClipFieldByFunction]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipFieldToFieldOrWidget|ClipFieldToFieldOrWidget]] :Select a subset of a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipLatVolByIndicesOrWidget|ClipLatVolByIndicesOrWidget]] :Select data from a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipRasterFieldByIndices|ClipRasterFieldByIndices]] :The Field Sub Sample module sub samples a structured grid. It is posible to sub sample a particular region or sparsely sample the grid. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalue|ClipVolumeByIsovalue]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ClipVolumeByIsovalueWithRefinement|ClipVolumeByIsovalueWithRefinement]] :Clip a scalar field to a specified isovalue. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertMatricesToMesh|ConvertMatricesToMesh]] :Construct a mesh from raw matrix data. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateImage|CreateImage]] :Make an ImageField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLatVol|CreateLatVol]] :Make a LatVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStructHex|CreateStructHex]] :Make a StructHexVolField that fits the source field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractPlanarSliceFromField|ExtractPlanarSliceFromField]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromField|GeneratePointSamplesFromField]] :Place seed points in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GeneratePointSamplesFromFieldOrWidget|GeneratePointSamplesFromFieldOrWidget]] :GeneratePointSamplesFromFieldOrWidget generates samples from any type of input field and outputs the samples as a PointCloudField field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateSinglePointProbeFromField|GenerateSinglePointProbeFromField]] :GenerateSinglePointProbeFromField values in a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetCentroidsFromMesh|GetCentroidsFromMesh]] :Computes a PointCloudField containing all of the element centers for a field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFieldBoundary|GetFieldBoundary]] :The GetFieldBoundary module extracts a boundary surface from a volume field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetHexVolSheetBasedOnEdgeIndices|GetHexVolSheetBasedOnEdgeIndices]] :Removes a layer of hexes corresponding to the input edge ids. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetSliceFromLatVol|GetSliceFromLatVol]] :The Field Slicer module reduces the dimension of a topologically regular field by 1 dimension. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InsertHexVolSheetFromTriSurf|InsertHexVolSheetFromTriSurf]] :Insert a layer of hexes corresponding to the input TriSurfMesh. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCamal|InterfaceWithCamal]] :InterfaceWithCamal will create a 3D volumetric mesh of tets in the supplied boundary mesh ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithCubit|InterfaceWithCubit]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:InterfaceWithTetGen|InterfaceWithTetGen]] : ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinFields|JoinFields]] :JoinFields glues any number of input fields into one output field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeFields|MergeFields]] :Insert the elements from a field into a TetVol or TriSurf field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:MergeTriSurfs|MergeTriSurfs]] :Self intersect all the triangles in a trisurf with each other so that none overlap. ==='''Render'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditCameraPath|CreateAndEditCameraPath]] :Interactive tool to edit and playback camera path in <modref text="SCIRun"text="Viewer"></modref>. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowAndEditCameraWidget|ShowAndEditCameraWidget]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SynchronizeGeometry|SynchronizeGeometry]] :Create a barrier to synchronize a set of geometry streams. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewAndEditSlices|ViewAndEditSlices]] :The ViewAndEditSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewGraph|ViewGraph]] :Renders input Nx2 matrices in a 2D graph ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewScene|ViewScene]] :The ViewScene displays interactive graphical output to the computer screen. Use the ViewScene to see a geometry, or spatial data. The ViewScene provides access to many simulation parameters and controls, thus, indirectly initiates new iterations of the simulation steps important to computational steering. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ViewSlices|ViewSlices]] :The ViewSlices module displays orthogonal slices of a 3D Nrrd in a 2D OpenGL window. ==='''String'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateString|CreateString]] :This module can be used to create a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GetFileName|GetFileName]] :This Module gets a filename and stores it in a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:JoinStrings|JoinStrings]] :This module merges multiple strings into one string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintMatrixIntoString|PrintMatrixIntoString]] :This module does a sprintf with input matrices into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:PrintStringIntoString|PrintStringIntoString]] :This module does a sprintf with input strings into a new string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ReportStringInfo|ReportStringInfo]] :This module can be used to display the contents of a string. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:SplitFileName|SplitFileName]] :This module splits a filename in: pathname, filename (base), and extension. ==='''Time'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:TimeControls|TimeControls]] :Global time controls. ==='''Visualization'''=== ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ChooseColorMap|ChooseColorMap]] :ChooseColorMap takes in an arbitrary number of input colormaps, and passes one of them downstream, based on the port index typed in the UI. Input port specification is 0 based (ie: first port is 0, 2nd port is 1, etc.) ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertFieldsToTexture|ConvertFieldsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ConvertNrrdsToTexture|ConvertNrrdsToTexture]] :This module builds a 3D Texture for use with an OpenGL volume renderer. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap|CreateAndEditColorMap]] :Modify and create custom SCIRun ColorMaps. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateAndEditColorMap2D|CreateAndEditColorMap2D]] :CreateAndEditColorMap2D is used for interactively creating and editing ColorMap2 transfer functions for use in volume visualization. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateLightForViewer|CreateLightForViewer]] :? ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateStandardColorMaps|CreateStandardColorMaps]] :A module that generates fixed Colormaps for visualization tools. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerAxes|CreateViewerAxes]] :Generates Axes Geometry for rendering graphs. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerCaption|CreateViewerCaption]] :Generates a title for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:CreateViewerClockIcon|CreateViewerClockIcon]] :Generates a clock for rendering animations. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ExtractIsosurface|ExtractIsosurface]] :ExtractIsosurface extracts an isopotential surface from a scalar field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLines|GenerateStreamLines]] :The GenerateStreamLines module visualizes vector fields by generating curves that interpolate the vector of vectors in a Field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:GenerateStreamLinesWithPlacementHeuristic|GenerateStreamLinesWithPlacementHeuristic]] :Generate optimal stream lines ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:RescaleColorMap|RescaleColorMap]] :RescaleColorMap allows the user to manually or automatically set the range of scalar values that map to the ColorMap. RescaleColorMap is an example of a module that has dynamic ports, because each time the user connects a Field module to the RescaleColorMap Field input port, another Field input port appears. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowColorMap|ShowColorMap]] :Display a ColorMap with index values. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowField|ShowField]] :The ShowField module visualizes the geometry that makes up a Mesh inside a Field. Where possible, the field takes its color from the Data values that permeate the field. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMatrix|ShowMatrix]] :Display a matrix as geometry. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowMeshBoundingBox|ShowMeshBoundingBox]] :The ShowMeshBoundingBox Module renders a semented red-green-blue 3D grid around an arbitrary field ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowString|ShowString]] :This module puts the contents of a string in the viewer window. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureSlices|ShowTextureSlices]] :This module is used to view slices of data using hardware 3D textures. ;[[CIBC:Documentation:SCIRun:Reference:SCIRun:ShowTextureVolume|ShowTextureVolume]] :This module implements a volume renderer using 3D texture hardware. ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData3 0 1758 3900 1986 2006-12-12T19:08:20Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldData3'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData3 :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module calculates a new value for each value in the field data based on a user defined function. This function is based on a series of variables that is available for each data location. Once the function is defined, the module will walk through each data value and apply the function. ====Detailed Description==== ====Overview==== This module allows the computation of a new scalar, vector or tensor value for each data location in the field. The user define function can depend on a number of variables that are defined for each location: ====Input variables==== '''DATA1''': This is the current value stored in the field (either on the element or the node location). '''DATA2''': This is the value stored in the field on the second input port (either on the element or the node location). '''DATA3''': This is the value stored in the field on the third input port (either on the element or the node location). '''X,Y,Z''': Cartesian coordinates of the node or element from the first input field (center of the element) '''POS''': Vector with cartesian coordinates of the node or element from the first input field. '''A,B,C,...''': Input from additional matrix ports. The input matrix can have either 1 row or the same number of rows as there are values in the field. In case the matrix has one value this value is the same for each data location, in case it has multiple values the module iterates of the values in the same way it iterates over the data values of the field. The matrix input can have either 1 column, 3 columns, 6 or 9 columns. In case the matrix has 1 column values are assumed to be scalar values, in case the matrix has 3 columns it is assumed to contain vector values and in case it has either 6 or 9 columns it is assumed to be a tensor value (A 6 valued tensor is defined as xx, xy, xz, yy, yz, and zz). '''INDEX''': The index number of the element or node. '''SIZE''': The number of elements or nodes in the field. (Depending on the input field type) '''ELEMENT''': Special access variable to access properties of the element. Currently only length, area, and volume are available to be called on this entity. In case one is iterating over the nodes, the node point is assumed to be the element, in case one is iterating of the elements, this variable is referring to the full element. ====Output variable==== '''RESULT''': The output needs to be stored in the variable RESULT. ====Available functions==== A list of available functions is available in the GUI of the module. Press on the button available functions to obtain a full overview of the current available functions to do Scalar/Vector/Tensor algebra and to view the functions that can be applied to the ELEMENT variable. ====Implementation==== The user defined function is currently being translated in a chunck of code that is compiled using the dynamic compiler, however the current plan is to replace the dynamic compiler with a simple parser. In the latter case not every C++ functionality will be available, and hence it is recommended to stay within the functions defined in the help of the module. ====Input ports==== The first input is the field whose data needs to be recalculated using a function. The second port is an optional port that allows the user to script the module with a user defined input function. This function will override the function given in the GUI of the module. The third and next ports are used to import a matrix. The first port corresponds to matrix A, the next to matrix B and so on. These ports can be used to do algebra with values stored as a matrix or can be used to enter scriptable scalar/vector/tensor values that can be defined elsewhere. ====Output port==== The module has one output port that has the newly defined values. ====Output data type==== As the function is parsed using the compiler, the output type cannot be guessed by the module, hence it needs to be set by the user to the correct data type. ---- ===Frequently Asked Questions=== ;The module shows up an error dialoge with code, what now? :This normally happens when the code in the module cannopt be parsed by the compiler. Check whether the algebra makes sense and whether the output type is correct. As the module does not parse the expressions, it does not know whether the output needs to be scalar, vector, or tensor. The user has to specify the correct output format currently. A second cause of the compiler not being able to compile the code is a typo in the expression or a missing semicolon at the end of the expression. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRuun]] CIBC:Documentation:SCIRun:Reference:SCIRun:CalculateFieldData2 0 1757 3899 1987 2006-12-12T19:08:46Z Jeroen 19 wikitext text/x-wiki =='''CalculateFieldData2'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRun]] :Catagory: ChangeFieldData2 :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== This module calculates a new value for each value in the field data based on a user defined function. This function is based on a series of variables that is available for each data location. Once the function is defined, the module will walk through each data value and apply the function. ====Detailed Description==== ====Overview==== This module allows the computation of a new scalar, vector or tensor value for each data location in the field. The user define function can depend on a number of variables that are defined for each location: ====Input variables==== '''DATA1''': This is the current value stored in the field (either on the element or the node location). '''DATA2''': This is the value stored in the field on the second input port (either on the element or the node location). '''X,Y,Z''': Cartesian coordinates of the node or element from the first input field (center of the element) '''POS''': Vector with cartesian coordinates of the node or element from the first input field. '''A,B,C,...''': Input from additional matrix ports. The input matrix can have either 1 row or the same number of rows as there are values in the field. In case the matrix has one value this value is the same for each data location, in case it has multiple values the module iterates of the values in the same way it iterates over the data values of the field. The matrix input can have either 1 column, 3 columns, 6 or 9 columns. In case the matrix has 1 column values are assumed to be scalar values, in case the matrix has 3 columns it is assumed to contain vector values and in case it has either 6 or 9 columns it is assumed to be a tensor value (A 6 valued tensor is defined as xx, xy, xz, yy, yz, and zz). '''INDEX''': The index number of the element or node. '''SIZE''': The number of elements or nodes in the field. (Depending on the input field type) '''ELEMENT''': Special access variable to access properties of the element. Currently only length, area, and volume are available to be called on this entity. In case one is iterating over the nodes, the node point is assumed to be the element, in case one is iterating of the elements, this variable is referring to the full element. ====Output variable==== '''RESULT''': The output needs to be stored in the variable RESULT. ====Available functions==== A list of available functions is available in the GUI of the module. Press on the button available functions to obtain a full overview of the current available functions to do Scalar/Vector/Tensor algebra and to view the functions that can be applied to the ELEMENT variable. ====Implementation==== The user defined function is currently being translated in a chunck of code that is compiled using the dynamic compiler, however the current plan is to replace the dynamic compiler with a simple parser. In the latter case not every C++ functionality will be available, and hence it is recommended to stay within the functions defined in the help of the module. ====Input ports==== The first input is the field whose data needs to be recalculated using a function. The second port is an optional port that allows the user to script the module with a user defined input function. This function will override the function given in the GUI of the module. The third and next ports are used to import a matrix. The first port corresponds to matrix A, the next to matrix B and so on. These ports can be used to do algebra with values stored as a matrix or can be used to enter scriptable scalar/vector/tensor values that can be defined elsewhere. ====Output port==== The module has one output port that has the newly defined values. ====Output data type==== As the function is parsed using the compiler, the output type cannot be guessed by the module, hence it needs to be set by the user to the correct data type. ---- ===Frequently Asked Questions=== ;The module shows up an error dialoge with code, what now? :This normally happens when the code in the module cannopt be parsed by the compiler. Check whether the algebra makes sense and whether the output type is correct. As the module does not parse the expressions, it does not know whether the output needs to be scalar, vector, or tensor. The user has to specify the correct output format currently. A second cause of the compiler not being able to compile the code is a typo in the expression or a missing semicolon at the end of the expression. ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:SCIRun|SCIRuun]] Ubuntu Prerequisites (Packages to Install) 0 1786 3929 2042 2006-12-13T22:31:00Z McKayDavis 45 wikitext text/x-wiki Ubuntu comes with a relatively minimal install and several packages may be required. It is easy to get the necessary packages listed below via the Synaptic package manager. Many packages are part of the initial basic install, but make sure these are installed before preceding: x-libs, xlibs-dev, flex, bison, subversion, smp kernel, libxaw, libxaw-dev, lapack, blas, g77, gcc,g++, make, cmake File:FieldReaderMenu.gif 6 1798 3930 2006-12-13T22:59:08Z Blackham 44 wikitext text/x-wiki File:FieldReaderGui.gif 6 1799 3941 2006-12-13T23:08:19Z Blackham 44 wikitext text/x-wiki File:FRtoSFconnect.gif 6 1800 3942 2006-12-13T23:24:05Z Blackham 44 wikitext text/x-wiki File:FRtoSFdone.gif 6 1801 3943 2006-12-13T23:24:16Z Blackham 44 wikitext text/x-wiki Current events 0 994 3132 2059 2006-12-15T18:08:08Z Erikj 2 wikitext text/x-wiki File:SF Gui.gif 6 1802 3944 2006-12-15T22:49:00Z Blackham 44 wikitext text/x-wiki File:Viewer.gif 6 1803 3945 2006-12-15T22:50:33Z Blackham 44 wikitext text/x-wiki File:1 10 2.gif 6 1804 3946 2006-12-15T22:53:25Z Blackham 44 wikitext text/x-wiki File:ViewerSettings.gif 6 1805 3947 2006-12-15T22:53:40Z Blackham 44 wikitext text/x-wiki File:1 11.gif 6 1806 3948 2006-12-15T22:55:04Z Blackham 44 wikitext text/x-wiki File:1 12.gif 6 1807 3949 2006-12-15T22:55:17Z Blackham 44 wikitext text/x-wiki Main Page 0 1 2084 2080 2006-12-21T17:10:51Z Jeroen 19 /* Documentation Portal */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== The release Seg3D is near. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Documentation Portal=== The SCIRun documentation has been moved to the following site: [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation SCIRun Documentation] ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 2085 2084 2006-12-23T00:15:07Z McKayDavis 45 /* Seg3D */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with version SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Documentation Portal=== The SCIRun documentation has been moved to the following site: [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation SCIRun Documentation] ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 2086 2085 2006-12-23T00:15:26Z McKayDavis 45 /* Seg3D */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Documentation Portal=== The SCIRun documentation has been moved to the following site: [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation SCIRun Documentation] ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 2093 2086 2007-01-03T22:16:20Z Jeroen 19 /* Documentation Portal */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:WindowsPort | Windows Port of SCIRun ]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 2095 2093 2007-01-17T20:20:49Z Dav 18 Removed windows install pointer (pointed to old info). wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [[CIBC:Project:svn | Building the CIBC branch]] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 2096 2095 2007-01-17T20:28:10Z Dav 18 Changed pointer to new SCIRun Developer Docs. wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Developer Information] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 2123 2096 2007-01-17T20:33:27Z Dav 18 removed extra line wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Developer Information] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Documentation 0 1092 2082 2081 2006-12-21T17:13:55Z Jeroen 19 wikitext text/x-wiki #redirect [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation SCIRun Documentation] 3228 2082 2006-12-21T17:20:44Z Jeroen 19 wikitext text/x-wiki '''This page has been moved to a new wiki, please click on the link below to access the new CIBC documentation Wiki:''' [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation SCIRun Documentation] CIBC:Documentation:SCIRun 0 1087 3224 2083 2006-12-21T17:25:30Z Jeroen 19 wikitext text/x-wiki '''This page has been moved to a new wiki, please click on the link below to access the new CIBC documentation Wiki:''' [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun Documentation] File:Matlab bundle1.png 6 1808 3837 2007-01-11T23:30:46Z Dbrayford 43 wikitext text/x-wiki File:Matlab bundle2.png 6 1809 3838 2007-01-11T23:34:57Z Dbrayford 43 wikitext text/x-wiki CIBC:Project:Matlab 0 1076 2088 2087 2007-01-11T23:51:57Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. See Figures 11 & 12. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is passed to the InterfaceWithMatlabViaBundles module. [[Image:Matlab_bundle2.png]] Figure 12 2089 2088 2007-01-12T00:01:44Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is passed to the InterfaceWithMatlabViaBundles module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle is then used to execute some Matlab function. [[Image:Matlab_bundle2.png]] Figure 12 2090 2089 2007-01-12T00:08:51Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is passed to the InterfaceWithMatlabViaBundles module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' is then used to execute some Matlab function (see above examples). [[Image:Matlab_bundle2.png]] Figure 12 2091 2090 2007-01-12T18:41:48Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is passed to the InterfaceWithMatlabViaBundles module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code is loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. [[Image:Matlab_bundle2.png]] Figure 12 2097 2091 2007-01-12T23:44:50Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 2098 2097 2007-01-19T20:53:49Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within bundle2 is convertered to the SCIRun nrrd datatype by changing the output type tab associated with the bundle2 output port from '''prefer matrices''' to '''prefer nrrds''' 2099 2098 2007-01-19T23:06:06Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within bundle2 is convertered to the SCIRun nrrd datatype by changing the output type tab associated with the output port '''bundle2''' from '''prefer matrices''' to '''prefer nrrds'''. 2100 2099 2007-01-19T23:17:21Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab associated with the output port '''bundle2''' from '''prefer matrices''' to '''prefer nrrds'''. 2101 2100 2007-01-19T23:39:42Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. 2102 2101 2007-01-20T00:16:21Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and the SCIRun application is built with the MatlabInterface enabled during the configuration stage. For example, '''../src/configure --with-thirdparty=path/to/thirdparty --enable-package=”BioPSE MatlabInterface”''' If not reconfigure and rebuild the SCIRun application as shown above. For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2103 2102 2007-01-22T19:42:31Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the DataIO tab and then click on the Matlab tab. This will then create a module widget within the main SCIRun application window. On the Matlab widget module click on the UI (user interface) tab, which opens the Matlab interface GUI see Figure 1. [[Image:Matlab01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:Matlab02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:Matlab03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:MatlabDataReader01.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:MatlabReader02.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:Autoload01.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:Autoload02.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:Parameter_pass01.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:Parameter_pass02.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:Matlab2SCIRun.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). File:Matlab bundle3.png 6 1810 3225 2007-01-12T21:00:07Z Dbrayford 43 wikitext text/x-wiki File:Matlab bundle convert.png 6 1811 3226 2007-01-12T22:33:40Z Dbrayford 43 wikitext text/x-wiki User:BGordillo 2 1812 3939 2007-01-17T00:49:27Z Erikj 2 wikitext text/x-wiki I am professor of organic chemistry with interest in biomedical field. I am interested in research related on porphyrins as sensitizers in PDT therapy. CIBC:Project:WindowsPort 0 1035 3171 2092 2007-01-17T20:19:57Z Dav 18 Deprecated page. wikitext text/x-wiki I believe the instructions that used to be on this page are invalid. (You can find them in the history tab if you really need them.) CIBC:Project:svn 0 1067 3200 2094 2007-01-17T20:24:29Z Dav 18 Deprecated page. wikitext text/x-wiki This information is out of date. Please see the new docs: http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page. File:Matlab bundle4.png 6 1813 3221 2007-01-19T18:42:28Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure01.png 6 1814 3950 2007-01-23T16:36:42Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure02.png 6 1815 3951 2007-01-23T16:38:20Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure03.png 6 1816 3952 2007-01-23T16:40:12Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure04.png 6 1817 3953 2007-01-23T16:40:54Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure05.png 6 1818 3954 2007-01-23T16:41:49Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure06.png 6 1819 3955 2007-01-23T16:42:31Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure07.png 6 1820 3956 2007-01-23T16:43:20Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure08.png 6 1821 3957 2007-01-23T16:44:04Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure09.png 6 1822 3958 2007-01-23T16:45:20Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure10.png 6 1823 3959 2007-01-23T16:46:05Z Dbrayford 43 wikitext text/x-wiki CIBC:Project:Matlab 0 1076 2104 2103 2007-01-23T17:06:33Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module widget within the main SCIRun application window. On the InterfaceWithMatlab widget module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the Matlab interface GUI, which opens up a directory structure GUI interface that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main Matlab interface GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', , which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2105 2104 2007-01-23T17:36:27Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module widget within the main SCIRun application window. On the InterfaceWithMatlab widget module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the MatlabDataReader tab. This will create a module widget within the main SCIRun application window. On The MatlabDataReader widget module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the Matlab interface module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from an interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within an interface module that are subsequently passed to the Matlab module using the string input and output ports. The MultiPhaseCVInterface module is a user defined module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2106 2105 2007-01-23T18:57:20Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module widget within the main SCIRun application window. On the InterfaceWithMatlab widget module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module widget within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2107 2106 2007-01-23T19:02:01Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the Matlab interface Module within SCIRun? The ability to pass a series of parameters to a Matlab function within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the third output string contains the parameters to the function. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours''' '''string 3 value is : 'Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2108 2107 2007-01-23T19:13:06Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by three string output ports see Figure 8. Where the first output string contains the absolute filename, the second output string contains the function name and the parameters that are executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 100, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the Matlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''com = [string2 '(' string3 ');'];''' The function name and parameters are combined to produce a string of the form '''function(parameter1, parameter2, ...)''', and '''eval(com);''' evalutes the combined function and parameter string using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2109 2108 2007-01-23T19:33:43Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into string2 contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in string2 using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within an interface module, which are then passed to the Matlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun. 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2110 2109 2007-01-23T21:05:22Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the 10)How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2111 2110 2007-01-24T16:38:14Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two string are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the Matlab code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun Matlab module using the command '''sample_matrix = load('/scratch/ActiveContours/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2112 2111 2007-01-24T17:21:12Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The Matlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which is the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''' where output_image contains the path and name of the image file (/path/to/file.extension). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2113 2112 2007-01-24T18:05:50Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to Matlab and cmake. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2114 2113 2007-01-24T18:07:48Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). 2115 2114 2007-01-30T23:43:56Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module via the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different datatype for additional processing and subsequent visualization within SCIRun. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module attached to the '''GetNrrdsFromBundle''' module, which extracts the nrrd image from within a bundle. 2116 2115 2007-01-31T00:09:50Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module via the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. [[Image:Figure16.png]] Figure 16 To ensure that the correct nrrd image is extracted from the bundle, click the UI button on the GetNrrdsFromBundle module, which launches the GUI shown at the top right of Figure 16 appears. Then select the appropriate image (image1) so that appears in the top text box. 2118 2116 2007-01-31T00:16:29Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module via the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the GetNrrdsFromBundle module and passed onto the ConvertNrrdToField module. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 2119 2118 2007-01-31T18:59:14Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 2120 2119 2007-01-31T23:15:43Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. [[Image:Figure17.png]] Figure 17 2121 2120 2007-02-01T00:08:19Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. It is possible to visualize the image generated by the matlab program within SCI. [[Image:Figure17.png]] Figure 17 2122 2121 2007-02-02T18:49:31Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. It is possible to visualize the image generated by the matlab program within SCI. [[Image:Figure17.png]] Figure 17 In Figure 17 the SCIRun dataflow network from Figure 16 was modified to remove the '''ConvertNrrdToField''' and '''ReportFieldInfo''' modules. While incorporating the '''ViewSlices''' module, which is attached to the '''GetNrrdsFromBundle''' module. It is now possible to display the image created by the Matlab program within the SCIRun software environment by launching the '''ViewSlices''' GUI (See Figure 17). 2124 2122 2007-02-02T20:01:32Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. It is possible to visualize the image generated by the matlab program within SCI. [[Image:Figure17.png]] Figure 17 In Figure 17 the SCIRun dataflow network from Figure 16 was modified to remove the '''ConvertNrrdToField''' and '''ReportFieldInfo''' modules. While incorporating the '''ViewSlices''' module, which is attached to the '''GetNrrdsFromBundle''' module. It is now possible to display the image created by the Matlab program within the SCIRun software environment by launching the '''ViewSlices''' GUI (See Figure 17). 15) Extracting and modify data stored with the image. Now that we are able to display the image data generated by the Matlab program. The next step is to enable the user to extract or modify data stored within the image displayed within SCIRun. 2125 2124 2007-02-13T22:35:31Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. It is possible to visualize the image generated by the matlab program within SCI. [[Image:Figure17.png]] Figure 17 In Figure 17 the SCIRun dataflow network from Figure 16 was modified to remove the '''ConvertNrrdToField''' and '''ReportFieldInfo''' modules. While incorporating the '''ViewSlices''' module, which is attached to the '''GetNrrdsFromBundle''' module. It is now possible to display the image created by the Matlab program within the SCIRun software environment by launching the '''ViewSlices''' GUI (See Figure 17). 15) Extracting and modify data stored with the image. Now that we are able to display the image data generated by the Matlab program. The next step is to enable the user to extract or modify data stored within the image displayed within SCIRun. Title and axis labels are important components of data visualization, which helps the user to obtain useful details from the visual representation of the data. This information can be extracted from the user defined parameters passed to the Matlab function via the InterfaceMultiPhaseCVWithMatlab module using the regular expression functionality available within Matlab. The next step is to incorporate the information extracted into a bundle, which is then passed to another SCIRun module (see Figure 18). [[Image:Matlab_figure18.png]] Figure 18 2126 2125 2007-02-13T23:44:51Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. It is possible to visualize the image generated by the matlab program within SCI. [[Image:Figure17.png]] Figure 17 In Figure 17 the SCIRun dataflow network from Figure 16 was modified to remove the '''ConvertNrrdToField''' and '''ReportFieldInfo''' modules. While incorporating the '''ViewSlices''' module, which is attached to the '''GetNrrdsFromBundle''' module. It is now possible to display the image created by the Matlab program within the SCIRun software environment by launching the '''ViewSlices''' GUI (See Figure 17). 15) Extracting and modify data stored with the image. Now that we are able to display the image data generated by the Matlab program. The next step is to enable the user to extract or modify data stored within the image displayed within SCIRun. Title and axis labels are important components of data visualization, which helps the user to obtain useful details from the visual representation of the data. This information can be extracted from the user defined parameters passed to the Matlab function via the InterfaceMultiPhaseCVWithMatlab module using the regular expression functionality available within Matlab. The next step is to incorporate the information extracted into a bundle, which is then passed to another SCIRun module (see Figure 18). [[Image:Matlab_figure18.png]] Figure 18 In Figure 18 a dataflow connection is made between the third bundle output port of the '''InterfaceWithMatlabViaBundles''' module and the '''GetStringsFromBundle''' module. The strings extracted from the bundle are then passed to the '''ShowString''' module. which are attached to the '''ViewScene''' module and combined with the processed image. The result of combining the string and image information can be seen in the view scene window at the top right corner of Figure 18. 2127 2126 2007-02-14T18:15:03Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. It is possible to visualize the image generated by the matlab program within SCI. [[Image:Figure17.png]] Figure 17 In Figure 17 the SCIRun dataflow network from Figure 16 was modified to remove the '''ConvertNrrdToField''' and '''ReportFieldInfo''' modules. While incorporating the '''ViewSlices''' module, which is attached to the '''GetNrrdsFromBundle''' module. It is now possible to display the image created by the Matlab program within the SCIRun software environment by launching the '''ViewSlices''' GUI (See Figure 17). 15) Extracting and modify data stored with the image. Now that we are able to display the image data generated by the Matlab program. The next step is to enable the user to extract or modify data stored within the image displayed within SCIRun. Title and axis labels are important components of data visualization, which helps the user to obtain useful details from the visual representation of the data. This information can be extracted from the user defined parameters passed to the Matlab function via the InterfaceMultiPhaseCVWithMatlab module using the regular expression functionality available within Matlab. The next step is to incorporate the information extracted into a bundle, which is then passed to another SCIRun module (see Figure 18). [[Image:Matlab_figure18.png]] Figure 18 In Figure 18 a dataflow connection is made between the third bundle output port of the '''InterfaceWithMatlabViaBundles''' module and the '''GetStringsFromBundle''' module. The strings extracted from the bundle are then passed to the '''ShowString''' module. which are attached to the '''ViewScene''' module and combined with the processed image. The result of combining the string and image information can be seen in the view scene window at the top right corner of Figure 18. [[Image:Matlab_figure19.png]] Figure 19 Figure 19 shows a simpler dataflow network than that depicted in Figure 18. In the '''GetStringFromBundle''' user interface window shows three string variables in the main text box, which are assigned to different output ports '''String1 = title''', '''String2 = method''' and '''String3 = timesteps'''. These string variable where incorporated into a bundle within the '''InterfaceWithMatlabViaBundles''' module using the commands within the Matlab code window: '''bundle3.title = title;''' '''bundle3.method = method;''' '''bundle3.timesteps = timesteps;''' To verify that the string variables passed from the '''InterfaceWithMatlabViaBundles''' contain the correct data. The '''ReportStringInfo''' module was attached to the output port of the '''GetStringFromBundle''' module, which displays the string value within the user interface window (see the top of Figure 19). Now that we have verified that the strings are correct we can incorporate the string information within the visualization by attaching the output ports from the '''GetStringsFromBundle''' modules to the input port of the '''ShowString''' modules. The position of the strings can be modified within the '''ShowString''' modules and then combined with the image by connecting the '''ShowString''' modules to the '''ViewScene''' module as illustrated in Figure 18. 2128 2127 2007-02-25T20:52:07Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 Although the output bundle tabs on the user interface only show prefer nrrds and prefer matrices. The '''InterfaceWithMatlabViaBundles''' module can implicitly export fields, strings, nrrds and matrices within a bundle. 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. It is possible to visualize the image generated by the matlab program within SCI. [[Image:Figure17.png]] Figure 17 In Figure 17 the SCIRun dataflow network from Figure 16 was modified to remove the '''ConvertNrrdToField''' and '''ReportFieldInfo''' modules. While incorporating the '''ViewSlices''' module, which is attached to the '''GetNrrdsFromBundle''' module. It is now possible to display the image created by the Matlab program within the SCIRun software environment by launching the '''ViewSlices''' GUI (See Figure 17). 15) Extracting and modify data stored with the image. Now that we are able to display the image data generated by the Matlab program. The next step is to enable the user to extract or modify data stored within the image displayed within SCIRun. Title and axis labels are important components of data visualization, which helps the user to obtain useful details from the visual representation of the data. This information can be extracted from the user defined parameters passed to the Matlab function via the InterfaceMultiPhaseCVWithMatlab module using the regular expression functionality available within Matlab. The next step is to incorporate the information extracted into a bundle, which is then passed to another SCIRun module (see Figure 18). [[Image:Matlab_figure18.png]] Figure 18 In Figure 18 a dataflow connection is made between the third bundle output port of the '''InterfaceWithMatlabViaBundles''' module and the '''GetStringsFromBundle''' module. The strings extracted from the bundle are then passed to the '''ShowString''' module. which are attached to the '''ViewScene''' module and combined with the processed image. The result of combining the string and image information can be seen in the view scene window at the top right corner of Figure 18. [[Image:Matlab_figure19.png]] Figure 19 Figure 19 shows a simpler dataflow network than that depicted in Figure 18. In the '''GetStringFromBundle''' user interface window shows three string variables in the main text box, which are assigned to different output ports '''String1 = title''', '''String2 = method''' and '''String3 = timesteps'''. These string variable where incorporated into a bundle within the '''InterfaceWithMatlabViaBundles''' module using the commands within the Matlab code window: '''bundle3.title = title;''' '''bundle3.method = method;''' '''bundle3.timesteps = timesteps;''' To verify that the string variables passed from the '''InterfaceWithMatlabViaBundles''' contain the correct data. The '''ReportStringInfo''' module was attached to the output port of the '''GetStringFromBundle''' module, which displays the string value within the user interface window (see the top of Figure 19). Now that we have verified that the strings are correct we can incorporate the string information within the visualization by attaching the output ports from the '''GetStringsFromBundle''' modules to the input port of the '''ShowString''' modules. The position of the strings can be modified within the '''ShowString''' modules and then combined with the image by connecting the '''ShowString''' modules to the '''ViewScene''' module as illustrated in Figure 18. 3212 2128 2007-02-25T21:03:33Z Dbrayford 43 wikitext text/x-wiki 1) How to load Matlab Code into SCIRun? First ensure that your system has access to '''Matlab''' and '''cmake'''. To built SCIRun with the MatlabInterface enabled. In the configuration stage ensure that the cmake variable '''LOAD_PACKAGE = SCIRun,BioPSE,Teem,MatlabInterface''' using ccmake. For example, '''cd /path/to/SCIRun/bin''' '''ccmake /path/to/SCIRun/src''' For ASCII Matlab files with the extension .m do the following. Start a SCIRun application. Move the mouse pointer on the title bar and left click on the MatlabInterface tab. This should open up an option box directly below, click on the Interface tab and then click on the InterfaceWithMatlab tab. This will then create a module within the main SCIRun application window. On the InterfaceWithMatlab module click on the UI (user interface) tab, which opens the InterfaceWithMatlab GUI see Figure 1. [[Image:matlab_figure01.png]] Figure 1 To load a particular Matlab .m file left click on the load tab found at the bottom left of the InterfaceWithMatlab module GUI, which opens up a directory structure GUI that enables the user to traverse the directory structure to find the required Matlab file see Figure 2. [[Image:matlab_figure02.png]] Figure 2 Once the required Matlab .m file is selected the code appears within the main InterfaceWithMatlab GUI window as illustrated in Figure 3. [[Image:matlab_figure03.png]] Figure 3 For binary Matlab files with the extension .mat do the following. Move the mouse pointer onto the title bar and left click on the Matlabinterface tab. This opens up an option box directly below, click on the DataIO tab and then click on the ImportDatatypesFromMatlab tab. This will create a module within the main SCIRun application window. On The ImportDatatypesFromMatlab module click on the UI tab, which opens a GUI. Then click on the browse tab to find the required Matlab .mat file as illustrated in Figure 4. [[Image:matlab_figure04.png]] Figure 4 2) How to execute and visualize Matlab code within SCIRun? To execute and visualize Matlab code within SCIRun you first must connect a network of modules that load, process the Matlab data from the file and then visualize the results. Figure 5 illustrates a simple SCIRun module network that perform these tasks. [[Image:matlab_figure05.png]] Figure 5 3) How to automatically load a Matlab file within the InterfaceWithMatlab module? There are several ways to automatically load a Matlab file into SCIRun. One method involves inserting the path to the desired file using addpath and then the name of the function into the main text box as shown in Figure 6 [[Image:matlab_figure06.png]] Figure 6 Another method involves passing the data as a string from a user defined interface module as illustrated in Figure 7. The data passed into string1 contains the absolute filename. For example, '''/path/to/filename.extension''', which is then subdivided into pathname and filename using '''[pn,fn]=fileparts(string1)''' and using a similar approach as described above the path is added using '''addpath'''. The data passed into '''string2''' contains the function name and is called using '''eval''' or some derivative of eval. For example, '''eval(string2)'''. [[Image:matlab_figure07.png]] Figure 7 4) How to pass a function and parameters to the InterfaceWithMatlab Module within SCIRun? The ability to pass a series of parameters to Matlab from within SCIRun is essential. The example that is given here involves setting the parameters within a user defined SCIRun module that are subsequently passed to the InterfaceWithMatlab module using the string input and output ports. The InterfaceMultiPhaseCVWithMatlab module is a user defined SCIRun module that enable the setting of parameters for the a particular Matlab code that are exported by two string output ports see Figure 8. Where the first output string contains the absolute filename, and the second output string contains the function name and parameters that are to be executed by Matlab. For example, '''string 1 value is : /scratch/ActiveContours/ActiveContours.m''' '''string 2 value is : ActiveContours('Explicit', 'Grad', 'a1', 'a1_explicit_grad.avi', 0.1 * 255 * 255, 0, 1, 1, 160, 0, 10)''' [[Image:matlab_figure08.png]] Figure 8 The next step involves inserting Matlab code into the main window to interprete the input strings and executing the code within the InterfaceWithMatlab module See Figure 9. [[Image:matlab_figure09.png]] Figure 9 where, '''[pn,fn]=fileparts(string1)''' subdivides the absolute filename into the path and file name, '''addpath(pn);''' adds the path. '''eval(string2);''' evalutes the function and parameters stored in '''string2''' using '''eval''' or some derivative of the eval function. 5) How to access and dynamically modifying Matlab variables and function parameters from within SCIRun? The ability to interact with the execution of the Matlab code within SCIRun requires a mechanism that enables the indivdual parameter to be modified by a user from within the user defined InterfaceMultiPhaseCVWithMatlab module, which are then passed to the InterfaceWithMatlab module for processing. For example, '''% Psuedo Matlab code''' '''% Matrices X, Y and Z''' '''X = DoSomething(X, ...);''' '''Y = DoSomething(Y, ...);''' '''Z = DoSomething(Z, ...);''' What we want to do is to be able to modify the parameters to the function '''DoSomething(Matrix, ...)''' then visualize the resultant matrix within SCIRun. 6) How to convert Matlab data types into corresponding SCIRun data types? For example, We are interested in the result of the application of a series of mathematical function within Matlab to a particular dataset such as an MRI scan. So we need a method to convert the results from a Matlab data format to a format that is recognized by SCIRun. [[Image:matlab_figure10.png]] Figure 10 7) How to combine scientific visualization data representation with additional information described within the Matlab code? An important aspect of creating a compelling visual representation of scientific data is the ability to incorporate additional information such as titles, axis, labels, etc into the visualization. 8) How to create a SCIRun visualization from Matlab data processing? For example, The main driving force for integrating Matlab with SCIRun is the ability to incorporate the advance visualization functionality that is available within SCIRun (See Figure 5). 9) How to create a SCIRun visualization networks the are equivalent to the Matlab visualization functionality? For example, Although we are primarily concerned with utilizing the advanced vizualization functionality available within SCIRun. It is important to be able to replicate the existing visualization functionality available within Matlab, such as contour(...), surf(...), mesh(...) etc. One method of mimicking the contour function within SCIRun is to use the '''ExtractIsosurface''' module. 10) How to execute existing Matlab code within the SCIRun environment with little of no modification? For example, we have some existing Matlab code as shown below. '''function DoSomething(...) {''' ''' % perform data processing''' ''' process_data;''' ''' % call function data_visualization''' ''' output = data_visualization(X,Y,Z,T,...);''' '''}''' '''function data_visualization(X,Y,Z,T, ...) {''' ''' % generates a series of different contour plots''' ''' subplot(2, 2, 1);''' ''' contourf(X, Y, Z, T);''' ''' subplot(2, 2, 2);'''''' ''' contour(X, Y, inv(Z), T);''' ''' subplot(2, 2, 3);''' ''' contour3(X, Y, fliplr(Z), T);''' ''' subplot(2, 2, 4);''' ''' contourc(X, inv(Y), Z, T);''' '''}''' Ideally we don't want to modify the existing Matlab code to enable it to be executed and visualized within SCIRun. However, to be able to access data from within an executing Matlab program. The existing Matlab code must be modified to either allow a socket connection or be able to write the data to a file. Otherwise, SCIRun cannot access the data generated from within separate program. 11) Performing the same task using the InterfaceWithMatlabViaBundles module. For certain applications it is desireable to store several SCIRun objects into a single bundle object, similar to an array in C. This can reduce the number of input and output connections between SCIRun modules and enables a cleaner dataflow network to be created. For example, while executing some process within a module several matrices are generated, which in turn need to be passed to another module for further processing. Rather than create a connection between the two SCIRun modules for each matrix generated. It would be better to store the matrices within a bundle and create a single connection between the two SCIRun modules. [[Image:Matlab_bundle1.png]] Figure 11 Figure 11 illustrates how two string objects '''string1''' & '''string2''' are inserted into a bundle object using the '''InsertStringsIntoBundle''' module. The resulting bundle object is then passed to the '''InterfaceWithMatlabViaBundles''' module and the two strings are extracted from the bundle using the command '''bundle1.string1''' & '''bundle1.string2''' within the '''InterfaceWithMatlab''' code window. The data extracted from the input bundle '''bundle1''' are then used to execute some Matlab function (see above examples). The file '''test_matrix.mat''' contains several matrices generated by the executed Matlab code was loaded into the SCIRun InterfaceWithMatlab module using the command '''sample_matrix = load('/path/to/file/test_matrix.mat');''' . The variable sample_matrix is similar to a structure in C and the data stored within it can be accessed in the same way. For example, '''field1 = sample_matrix.X;''' . [[Image:Matlab_bundle2.png]] Figure 12 The InterfaceWithMatlab code window in Figure 12 illustrates how SCIRun objects are inserted into an output bundle using the command '''out_bundle1.field1 = field1;''' . The variable '''out_bundle1''' was declared within output bundles section of the input/output window. Although the default variable name for the first output bundle is bundle1, which happens to be the same as the variable name for the equivalent input bundle. 12) Extracting SCIRun objects that are stored within a bundle. Once data has been stored within a bundle it is essential that the data can be accessed easily. To accomplish this SCIRun contains several modules under the tabs '''SCIRun > Bundle >''' . As shown in Figure 13. [[Image:Matlab_bundle_convert.png]] Figure 13 In Figure 14 the modules '''GetMatricesFromBundle''' and '''ReportBundleInfo''' are attached to the module '''InterfaceWithMatlabViaBundles''' using the bundle commuication ports. Clicking the UI button on the '''ReportBundleInfo''' module launches a GUI that displays the variable names and datatypes of the objects stored with the bundle. For example, '''field1(matrix)''' where '''field1''' is the variable name and '''matrix''' is the datatype. [[Image:Matlab_bundle3.png]] Figure 14 Although the output bundle tabs on the user interface only show prefer nrrds and prefer matrices. The '''InterfaceWithMatlabViaBundles''' module can implicitly export fields, strings, nrrds and matrices within a bundle (see Figure 18). 13) The loading of image files for processing and subsequent visualization can be achieved within the InterfaceWithMatlab and InterfaceWithMatlabViaBundles modules, as illustrated in Figure 15. [[Image:Matlab_bundle4.png]] Figure 15 In Figure 15 an image file is loaded into the InterfaceWithMatlabViaBundles modules using the command '''image_file = imread(output_image);''', where output_image contains the path and name of the image file ('''/path/to/file.extension'''). The image file is then incorporated into a bundle using the command '''bundle2.image1 = image_file;'''. The data stored within '''bundle2''' is then converted to the nrrd datatype by changing the output type tab that is associated with the output port '''bundle 2''' from '''prefer matrices''' to '''prefer nrrds'''. To extract the nrrd data stored in the bundle. The '''GetNrrdsFromBundle''' module was attached to the bundle output port of the '''InterfaceWithMatlabViaBundles''' module as illustrated by the SCIRun dataflow network (See Figure 15). Once the image data has been exported from the '''InterfaceWithMatlabViaBundles''' module to the '''GetNrrdsFromBundle''' module. It is then possible to convert the nrrd image into a different SCIRun datatype for additional processing and subsequent visualization. Figure 16 illustrates how a nrrd image stored within a bundle is converted into a SCIRun field datatype using the '''ConvertNrrdToField''' module, which is attached to the '''GetNrrdsFromBundle''' module. To ensure that the correct nrrd image is extracted from the bundle using the '''GetNrrdsFromBundle''' module and passed onto the '''ConvertNrrdToField module'''. Open the GUI shown at the top right of Figure 16 appears, then select the appropriate image (image1) so that appears in the top text box. [[Image:Figure16.png]] Figure 16 Once the nrrd image has been converted into a field datatype using the '''ConvertNrrdToField''' module. It is possible to extract information about the convert field datatype by attaching the '''ReportFieldInfo''' module to the '''ConvertNrrdToField''' module and clicking on the UI button. That launches a GUI (see bottom of Figure 16), which enables the user to verify the structure and type of data stored within the field. 14) Visualization of the nrrd image. It is possible to visualize the image generated by the matlab program within SCI. [[Image:Figure17.png]] Figure 17 In Figure 17 the SCIRun dataflow network from Figure 16 was modified to remove the '''ConvertNrrdToField''' and '''ReportFieldInfo''' modules. While incorporating the '''ViewSlices''' module, which is attached to the '''GetNrrdsFromBundle''' module. It is now possible to display the image created by the Matlab program within the SCIRun software environment by launching the '''ViewSlices''' GUI (See Figure 17). 15) Extracting and modify data stored with the image. Now that we are able to display the image data generated by the Matlab program. The next step is to enable the user to extract or modify data stored within the image displayed within SCIRun. Title and axis labels are important components of data visualization, which helps the user to obtain useful details from the visual representation of the data. This information can be extracted from the user defined parameters passed to the Matlab function via the InterfaceMultiPhaseCVWithMatlab module using the regular expression functionality available within Matlab. The next step is to incorporate the information extracted into a bundle, which is then passed to another SCIRun module (see Figure 18). [[Image:Matlab_figure18.png]] Figure 18 In Figure 18 a dataflow connection is made between the third bundle output port of the '''InterfaceWithMatlabViaBundles''' module and the '''GetStringsFromBundle''' module. The strings extracted from the bundle are then passed to the '''ShowString''' module. which are attached to the '''ViewScene''' module and combined with the processed image. The result of combining the string and image information can be seen in the view scene window at the top right corner of Figure 18. [[Image:Matlab_figure19.png]] Figure 19 Figure 19 shows a simpler dataflow network than that depicted in Figure 18. In the '''GetStringFromBundle''' user interface window shows three string variables in the main text box, which are assigned to different output ports '''String1 = title''', '''String2 = method''' and '''String3 = timesteps'''. These string variable where incorporated into a bundle within the '''InterfaceWithMatlabViaBundles''' module using the commands within the Matlab code window: '''bundle3.title = title;''' '''bundle3.method = method;''' '''bundle3.timesteps = timesteps;''' To verify that the string variables passed from the '''InterfaceWithMatlabViaBundles''' contain the correct data. The '''ReportStringInfo''' module was attached to the output port of the '''GetStringFromBundle''' module, which displays the string value within the user interface window (see the top of Figure 19). Now that we have verified that the strings are correct we can incorporate the string information within the visualization by attaching the output ports from the '''GetStringsFromBundle''' modules to the input port of the '''ShowString''' modules. The position of the strings can be modified within the '''ShowString''' modules and then combined with the image by connecting the '''ShowString''' modules to the '''ViewScene''' module as illustrated in Figure 18. File:Figure16.png 6 1824 3960 2007-01-30T21:55:25Z Dbrayford 43 wikitext text/x-wiki CIBC:Project:NCMIR 0 1061 2129 2117 2007-01-31T03:36:31Z Cates 4 /* Overview */ wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. <b>For up to date information and announcements regarding Seg3D please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl Join the Seg3D Mailing List. ]</b> <b>Seg3D is built atop the LeXoV volume processing engine. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-01.png Capecchi Collab Screenshot 1] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-02.png Capecchi Collab Screenshot 2] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-04.png Matt Jolley Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-05.png Dr. Valentino @ UCLA Collab Screenshot] [http://www.sci.utah.edu/~mdavis/Seg3D/Seg3D-06.png NCMIR Collab Screenshot] <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://www.sci.utah.edu/~mdavis/Seg3D/ 720x480 PowerPoint optimized movies] [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movie scripts on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. 3194 2129 2007-03-31T17:36:48Z McKayDavis 45 wikitext text/x-wiki == Overview == The SCI segmentation application is an OpenGL-based viewer and editor of scientific voxel data. It can handle data types ranging from eight-bit to double precision floating point formats and features three-dimensional navigation and editing of scalar, vector, and RGBA data. Users can simultaneously view multiple orthogonal, two-dimensional slices of the data and create segmentation masks (labeled images) using manual drawing tools and automated segmentation algorithms. Any number of volumes can be displayed relative to each other with correct origin, orientations, and data spacing. Visualization tools include standard and custom color lookup tables, infinite zooming, paning, and surface and volume rendering. Multiple modalities acquired at different resolutions can be displayed using separate color maps with transparency for manual registration. Data may be cropped, resampled, and thresholded. This tool integrates powerful higher-dimensional image processing and segmentation algorithms from the Insight Toolkit such as anisotropic blurring, edge-detection, image statistics, flood filling, morphological operations, and level-set segmentation algorithms. <b>For up to date information and announcements regarding Seg3D please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl Join the Seg3D Mailing List. ]</b> <b>Seg3D is built atop the LeXoV volume processing engine. == Features == * Familiar, Photoshop-style interface * Entirely open source code * Layered volumes displayed in unified coordinate space * Automated filtering plus Manual Contouring and Painting * Integrated ITK filtering vs. wrapping or bridging – uses native ITK callback & data types * Realtime display of ITK filter output allows for computational steering * Custom interface design (e.g. VCR controls for level-sets) * Customizable layout and event management engine XML-based * Cross platform: Only requires OpenGL context (ported to Windows, OSX, & Linux) * Supports many common biomedical formats (ITK File IO) * Event capture and replay (''not currently enabled'') * Session save / reload allows user to return to previous program state * 64-bit enabled for massive volumes on large memory machines * Custom volume rendering engine w/ 2 dimensional transfer function maninpulation in real-time (''not currently exposed'') == Screen Shots == [http://code.sci.utah.edu/Seg3D/media/Seg3D-01.png Capecchi Collab Screenshot 1] [http://code.sci.utah.edu/Seg3D/media/Seg3D-02.png Capecchi Collab Screenshot 2] [http://code.sci.utah.edu/Seg3D/media/Seg3D-04.png Matt Jolley Collab Screenshot] [http://code.sci.utah.edu/Seg3D/media/Seg3D-05.png Dr. Valentino @ UCLA Collab Screenshot] [http://code.sci.utah.edu/Seg3D/media/Seg3D-06.png NCMIR Collab Screenshot] <!-- [[Image:biopainter.png|left|thumb|Early development 2006]]--> <!-- [[Image:Screenshot08.png|left|thumb|August 2006]] --> <!-- [[Image:Screenshot10.png|left|thumb|August 2006]] --> <br style="clear:both" /> == Movies == [http://code.sci.utah.edu/Seg3D/media/ 720x480 PowerPoint optimized movies] [http://code.sci.utah.edu/LeXoV/index.php/Demo1 Movie scripts on LeXoV.org wiki] == Design == === Seg3D Concept === [[Image:dataflow.png|right|thumb|Diagram describing dataflow in the app.]] * 3D analog to Photoshop * Work with multiple volumes simultaneously * Volumes are organized in ''Layers'' * Layers may be visualized separately or as blended overlays * Each layer is assigned its own color map * Layers may be piped to ''Filters'' (ITK or other) * Filter output is piped back into a new Layer * Any number of ''Label Layers'' may be created * Label Layers are bit masks that represent a hierarchy of binary segmentations * Segmentations are either produced manually by slice-by-slice painting, or produced using Filter operations. * File IO via ITK (Analyze, DICOM, Nrrd, MetaImage, tiff, jpeg, png, and more) * Users may save work in sessions and reload === Hand Contouring / Painting === * Each label represented as 1-bit in memory * Respects logical operations (AND, OR, NOT, etc) * Heierarchical label management * Ontologies may be enforced by mapping to these logical operations === Image Processing and Segmentation === * ITK Filters, Teem Filters, & custom filters * Focus on ''integration'' of filters versus simple wrapping ** Integrated with the manual segmentation interface ** Real-time visualization of automated processing ** Minimize number of parameters that need to be exposed to user === Visualization === * Customizable 2D layouts (specified by XML) * 3D slice views with isosurfacing * Volume rendering coming soon === LeXoV Engine === * Infrastructure for volume processing applications * Provides layer management, manual editing and visualization * Allows for sharing of volume memory between Nrrd and Insight filters * Small (5-10mb binary) * Minimal dependencies (OpenGL, Freetype) * Cross platform: PowerPC & Intel Mac, 32/64-bit Linux, and Windows * Based on SCIRun Core libraries === Software Process === * Uses existing open source projects (ITK, freetype, libxml2) * Rapid prototyping & development supported by CMake and Dart * Source code is freely available and reusable under BSD style license == Interested Parties == * NCMIR, Mark Ellisman (UCSD) * Mario Capecchi (University of Utah) * Matt Jolley (Childrens Hospital, Boston) * Gregory Sharp and George Chen (Harvard MGH) * Dr. Valentino (UCLA, LONI pipeline) * Chris Butson (Cleveland Clinic) * SCI Institute people * Makeig-Worrell? <br style="clear:both" /> == Schedule == * 9/5/2006 Phone TCON with NCMIR * 9/14/2006 TCON with Slicer folks (email discussions are ongoing) * 10/6/2006 - 10/13/2006 limited release to NCMIR (see release notes below) * 10/15/2006 Limited release date pushed back to 10/18/2006 * 12/31/2006 Tentative release date for general Alpha release (see release notes below) == Notes == 9/11/06-9/15/06 McKay and Darby finishing CMake build. McKay porting to Mac. Windows port coming, courtesy of Brian. Goal for first of next week is downloadable executables for Linux, Mac, and maybe Windows. 9/18/06-9/22/06 McKay works on manual contouring infrastructure. 9/12/06-10/09/06 Continued work on manual contouring and layer management. Final requirements for limited release specified. Static binary builds for Mac and Linux are worked out. 10/10/06-10/18/06 Documentation, testing, final details... 11/01/06 We are now in a continous release mode for our "limited NCMIR release", focusing on bug fixes. Binaries are being posted at www.lexov.org. New features are on hold until we have the bugs under control. Brian still finalizing Windows port. == Release Notes == === Limited NCMIR Release === Planned features, in order of priority. * Labeled image management. Functionality is required to handle nested labeling (for ontologies). Datastructures are required to manage the "contains" dependencies among labels. Additional functionality and design is needed to transparently manage conversion between label volumes and image volumes for automated processing. Most of the work is here * GUI work to support above: primitive layer dialog? * Additional paint brush options to support label painting/ contouring * Visualization of label maps: contour view * Volume-rendering of multiple isosurfaces (some work needed). * Interactive (VCR controls) level-sets w/ dialog will specifically target mitochondria data (mostly done). * Stand alone executables: mac linux, maybe windows === Alpha release === Additional features beyond those in NCMIR Release. * Full-featured layer dialog * Isosurfacing. * Volume rendering with 2D transfer function widget. * Tool dialog design and implementation * Windows, Linux, Mac binaries. * Additional ITK filtering. File:Figure17.png 6 1825 3961 2007-01-31T23:03:30Z Dbrayford 43 wikitext text/x-wiki Main Page 0 1 2136 2123 2007-02-10T15:26:14Z Macleod 3 /* Development Info */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4898 2136 2007-05-07T00:05:42Z Erikj 2 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4899 4898 2007-05-07T00:08:33Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === Test edit. We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4900 4899 2007-05-07T00:16:01Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4901 4900 2007-05-07T00:42:09Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === Test. We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4902 4901 2007-05-07T16:38:51Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] File:Matlab figure18.png 6 1826 3962 2007-02-13T18:30:59Z Dbrayford 43 wikitext text/x-wiki File:Matlab figure19.png 6 1827 3963 2007-02-14T16:25:21Z Dbrayford 43 wikitext text/x-wiki CIBC:ShapeAnalysis 0 1828 2130 2007-04-18T17:13:18Z Cates 4 wikitext text/x-wiki = Shape Modeling and Analysis = This research is a new method for constructing compact statistical point-based models of ensembles of similar shapes that does not rely on any specific surface parameterization. The method requires very little preprocessing or parameter tuning, and is applicable to a wider range of problems than existing methods, including nonmanifold surfaces and objects of arbitrary topology. The proposed method is to construct a point-based sampling of the shape ensemble that simultaneously maximizes both the geometric accuracy and the statistical simplicity of the model. Surface point samples, which also define the shape-to-shape correspondences, are modeled as sets of dynamic particles that are constrained to lie on a set of implicit surfaces. Sample positions are optimized by gradient descent on an energy function that balances the negative entropy of the distribution on each shape with the positive entropy of the ensemble of shapes. We also extend the method with a curvature-adaptive sampling strategy in order to better approximate the geometry of the objects. We have developed code based on ITK for computation of correspondence-based models, and have validated out method in several papers against several synthetic and real examples in two and three dimensions, including application to the statistical shape analysis of brain structures. Our most recent work is in the application of the particle method to mult-object shape complexes. == Publications == * J. Cates, P. Thomas Fletcher, M. Styner, M. Shenton, R. Whitaker. Shape Modeling and Analysis with Entropy-Based Particle Systems. IPMI 2007, accepted. * J. Cates, P. Thomas Fletcher, R. Whitaker. Entropy-Based Particle Systems for Shape Corresopndence. Mathematical Foundations of Computational Anatomy Workshop, MICCAI 2006. pp. 90-99 Oct 2006. 2131 2130 2007-04-18T17:32:49Z Cates 4 /* Shape Modeling and Analysis */ wikitext text/x-wiki = Shape Modeling and Analysis = This research is a new method for constructing compact statistical point-based models of ensembles of similar shapes that does not rely on any specific surface parameterization. The method requires very little preprocessing or parameter tuning, and is applicable to a wider range of problems than existing methods, including nonmanifold surfaces and objects of arbitrary topology. The proposed method is to construct a point-based sampling of the shape ensemble that simultaneously maximizes both the geometric accuracy and the statistical simplicity of the model. Surface point samples, which also define the shape-to-shape correspondences, are modeled as sets of dynamic particles that are constrained to lie on a set of implicit surfaces. Sample positions are optimized by gradient descent on an energy function that balances the negative entropy of the distribution on each shape with the positive entropy of the ensemble of shapes. We also extend the method with a curvature-adaptive sampling strategy in order to better approximate the geometry of the objects. We have developed code based on ITK for computation of correspondence-based models, and have validated out method in several papers against several synthetic and real examples in two and three dimensions, including application to the statistical shape analysis of brain structures. Our most recent work is in the application of the particle method to multi-object shape complexes. We have developed a novel method for computing surface point correspondences of multi-object anatomy that is a straightforward extension of the particle method for single-object anatomy. The correspondences take advantage of the statistical structure of an ensemble of complexes, and thus they are suitable for joint statistical analyses of shape and relative pose. The proposed method uses a dynamic particle system to optimize correspondence point positions across all structures in a complex simultaneously, in order to create a compact model of ensemble statistics. It is a different approach from previous methods for dealing with shape complexes, because to date researchers have considered the correspondence problem only for each structure independently, and have ignored intermodel correlations in the shape parameterization. These correlations are particularly important when the correspondences are constructed in order to reduce or minimize the information content of the ensemble. We have developed a formulation of the multi-object correspondence optimization, and have applied it to a proof-of-concept application to the analysis of brain structure complexes from a longitudinal study of pediatric autism that is underway at UNC chapel hill. This work is in conjunction with Martin Styner, Heather Cody Hazlett, and Joe Piven. The image below shows the raw p-values from hypothesis testing for group differences as color-maps on mean shapes of the autism group (top row) and the normal control group (bottom row). Red indicates areas where significant group differences were found (p-values $< 0.05$), with blue elsewhere (p-values$>= 0.05$). The top row shows the results when relative geometric scale is included, and the bottom shows relative scale removed. Structures are shown in the their mean orientations, positions, and scale in the global coordinate frame. We computed the average orientation for each structure using methods for averaging in curved spaces. [[Image:meanshapes.png]] == Publications == * J. Cates, P. Thomas Fletcher, M. Styner, M. Shenton, R. Whitaker. Shape Modeling and Analysis with Entropy-Based Particle Systems. IPMI 2007, accepted. * J. Cates, P. Thomas Fletcher, R. Whitaker. Entropy-Based Particle Systems for Shape Corresopndence. Mathematical Foundations of Computational Anatomy Workshop, MICCAI 2006. pp. 90-99 Oct 2006. 2132 2131 2007-04-18T17:35:34Z Cates 4 /* Shape Modeling and Analysis */ wikitext text/x-wiki = Shape Modeling and Analysis = This research is a new method for constructing compact statistical point-based models of ensembles of similar shapes that does not rely on any specific surface parameterization. The method requires very little preprocessing or parameter tuning, and is applicable to a wider range of problems than existing methods, including nonmanifold surfaces and objects of arbitrary topology. The proposed method is to construct a point-based sampling of the shape ensemble that simultaneously maximizes both the geometric accuracy and the statistical simplicity of the model. Surface point samples, which also define the shape-to-shape correspondences, are modeled as sets of dynamic particles that are constrained to lie on a set of implicit surfaces. Sample positions are optimized by gradient descent on an energy function that balances the negative entropy of the distribution on each shape with the positive entropy of the ensemble of shapes. We also extend the method with a curvature-adaptive sampling strategy in order to better approximate the geometry of the objects. We have developed code based on ITK for computation of correspondence-based models, and have validated out method in several papers against several synthetic and real examples in two and three dimensions, including application to the statistical shape analysis of brain structures. Our most recent work is in the application of the particle method to multi-object shape complexes. We have developed a novel method for computing surface point correspondences of multi-object anatomy that is a straightforward extension of the particle method for single-object anatomy. The correspondences take advantage of the statistical structure of an ensemble of complexes, and thus they are suitable for joint statistical analyses of shape and relative pose. The proposed method uses a dynamic particle system to optimize correspondence point positions across all structures in a complex simultaneously, in order to create a compact model of ensemble statistics. It is a different approach from previous methods for dealing with shape complexes, because to date researchers have considered the correspondence problem only for each structure independently, and have ignored intermodel correlations in the shape parameterization. These correlations are particularly important when the correspondences are constructed in order to reduce or minimize the information content of the ensemble. We have developed a formulation of the multi-object correspondence optimization, and have applied it to a proof-of-concept application to the analysis of brain structure complexes from a longitudinal study of pediatric autism that is underway at UNC chapel hill. This work is in conjunction with Martin Styner, Heather Cody Hazlett, and Joe Piven. The image below shows the raw p-values from hypothesis testing for group differences as color-maps on mean shapes of the autism group (top row) and the normal control group (bottom row). Red indicates areas where significant group differences were found (p-values $< 0.05$), with blue elsewhere (p-values$>= 0.05$). The top row shows the results when relative geometric scale is included, and the bottom shows relative scale removed. Structures are shown in the their mean orientations, positions, and scale in the global coordinate frame. We computed the average orientation for each structure using methods for averaging in curved spaces. [[Image:meanshapes.png|thumbnail|Figure2]] == Publications == * J. Cates, P. Thomas Fletcher, M. Styner, M. Shenton, R. Whitaker. Shape Modeling and Analysis with Entropy-Based Particle Systems. IPMI 2007, accepted. * J. Cates, P. Thomas Fletcher, R. Whitaker. Entropy-Based Particle Systems for Shape Corresopndence. Mathematical Foundations of Computational Anatomy Workshop, MICCAI 2006. pp. 90-99 Oct 2006. 2133 2132 2007-04-18T17:36:09Z Cates 4 /* Shape Modeling and Analysis */ wikitext text/x-wiki = Shape Modeling and Analysis = This research is a new method for constructing compact statistical point-based models of ensembles of similar shapes that does not rely on any specific surface parameterization. The method requires very little preprocessing or parameter tuning, and is applicable to a wider range of problems than existing methods, including nonmanifold surfaces and objects of arbitrary topology. The proposed method is to construct a point-based sampling of the shape ensemble that simultaneously maximizes both the geometric accuracy and the statistical simplicity of the model. Surface point samples, which also define the shape-to-shape correspondences, are modeled as sets of dynamic particles that are constrained to lie on a set of implicit surfaces. Sample positions are optimized by gradient descent on an energy function that balances the negative entropy of the distribution on each shape with the positive entropy of the ensemble of shapes. We also extend the method with a curvature-adaptive sampling strategy in order to better approximate the geometry of the objects. We have developed code based on ITK for computation of correspondence-based models, and have validated out method in several papers against several synthetic and real examples in two and three dimensions, including application to the statistical shape analysis of brain structures. Our most recent work is in the application of the particle method to multi-object shape complexes. We have developed a novel method for computing surface point correspondences of multi-object anatomy that is a straightforward extension of the particle method for single-object anatomy. The correspondences take advantage of the statistical structure of an ensemble of complexes, and thus they are suitable for joint statistical analyses of shape and relative pose. The proposed method uses a dynamic particle system to optimize correspondence point positions across all structures in a complex simultaneously, in order to create a compact model of ensemble statistics. It is a different approach from previous methods for dealing with shape complexes, because to date researchers have considered the correspondence problem only for each structure independently, and have ignored intermodel correlations in the shape parameterization. These correlations are particularly important when the correspondences are constructed in order to reduce or minimize the information content of the ensemble. We have developed a formulation of the multi-object correspondence optimization, and have applied it to a proof-of-concept application to the analysis of brain structure complexes from a longitudinal study of pediatric autism that is underway at UNC chapel hill. This work is in conjunction with Martin Styner, Heather Cody Hazlett, and Joe Piven. The image below shows the raw p-values from hypothesis testing for group differences as color-maps on mean shapes of the autism group (top row) and the normal control group (bottom row). Red indicates areas where significant group differences were found (p-values $< 0.05$), with blue elsewhere (p-values$>= 0.05$). The top row shows the results when relative geometric scale is included, and the bottom shows relative scale removed. Structures are shown in the their mean orientations, positions, and scale in the global coordinate frame. We computed the average orientation for each structure using methods for averaging in curved spaces. [[Image:meanviews.png|thumbnail|Figure2]] == Publications == * J. Cates, P. Thomas Fletcher, M. Styner, M. Shenton, R. Whitaker. Shape Modeling and Analysis with Entropy-Based Particle Systems. IPMI 2007, accepted. * J. Cates, P. Thomas Fletcher, R. Whitaker. Entropy-Based Particle Systems for Shape Corresopndence. Mathematical Foundations of Computational Anatomy Workshop, MICCAI 2006. pp. 90-99 Oct 2006. 2134 2133 2007-04-18T17:45:41Z Cates 4 /* Shape Modeling and Analysis */ wikitext text/x-wiki = Shape Modeling and Analysis = This research is a new method for constructing compact statistical point-based models of ensembles of similar shapes that does not rely on any specific surface parameterization. The method requires very little preprocessing or parameter tuning, and is applicable to a wider range of problems than existing methods, including nonmanifold surfaces and objects of arbitrary topology. The proposed method is to construct a point-based sampling of the shape ensemble that simultaneously maximizes both the geometric accuracy and the statistical simplicity of the model. Surface point samples, which also define the shape-to-shape correspondences, are modeled as sets of dynamic particles that are constrained to lie on a set of implicit surfaces. Sample positions are optimized by gradient descent on an energy function that balances the negative entropy of the distribution on each shape with the positive entropy of the ensemble of shapes. We also extend the method with a curvature-adaptive sampling strategy in order to better approximate the geometry of the objects. We have developed code based on ITK for computation of correspondence-based models, and have validated out method in several papers against several synthetic and real examples in two and three dimensions, including application to the statistical shape analysis of brain structures. We used hippocampus data from a schizo-typal personality disorder (SPD) study funded by the Stanley Foundation and UNC-MHNCRC (MH33127), and caudate data from a schizophrenia study funded by NIMH R01 MH 50740 (Shenton), NIH K05 MH 01110 (Shenton), NIMH R01 MH 52807 (McCarley), and a VA Merit Award (Shenton). Figure 1,2 illustrates results of hypothesis testing for group differences from the control population for the left/right hippocampus and the left/right caudate. Raw and FDR-corrected p-values are given. Areas of significant group differences ($p <= 0.05$) are shown in red. Areas with insignificant group differences ($p > 0.05$) are shown in blue. Our results correlate with with other published hypothesis testing results on this data. Our most recent work is in the application of the particle method to multi-object shape complexes. We have developed a novel method for computing surface point correspondences of multi-object anatomy that is a straightforward extension of the particle method for single-object anatomy. The correspondences take advantage of the statistical structure of an ensemble of complexes, and thus they are suitable for joint statistical analyses of shape and relative pose. The proposed method uses a dynamic particle system to optimize correspondence point positions across all structures in a complex simultaneously, in order to create a compact model of ensemble statistics. It is a different approach from previous methods for dealing with shape complexes, because to date researchers have considered the correspondence problem only for each structure independently, and have ignored intermodel correlations in the shape parameterization. These correlations are particularly important when the correspondences are constructed in order to reduce or minimize the information content of the ensemble. [[Image:lcomb-grayscale.png|thumbnail|Figure 1]] [[Image:rcomb-grayscale.png|thumbnail|Figure 2]] We have developed a formulation of the multi-object correspondence optimization, and have applied it to a proof-of-concept application to the analysis of brain structure complexes from a longitudinal study of pediatric autism that is underway at UNC chapel hill. This work is in conjunction with Martin Styner, Heather Cody Hazlett, and Joe Piven. Figure 3 shows the raw p-values from hypothesis testing for group differences as color-maps on mean shapes of the autism group (top row) and the normal control group (bottom row). Red indicates areas where significant group differences were found (p-values $< 0.05$), with blue elsewhere (p-values$>= 0.05$). The top row shows the results when relative geometric scale is included, and the bottom shows relative scale removed. Structures are shown in the their mean orientations, positions, and scale in the global coordinate frame. We computed the average orientation for each structure using methods for averaging in curved spaces. [[Image:meanviews.png|thumbnail|Figure 3]] == Publications == * J. Cates, P. Thomas Fletcher, M. Styner, M. Shenton, R. Whitaker. Shape Modeling and Analysis with Entropy-Based Particle Systems. IPMI 2007, accepted. * J. Cates, P. Thomas Fletcher, R. Whitaker. Entropy-Based Particle Systems for Shape Corresopndence. Mathematical Foundations of Computational Anatomy Workshop, MICCAI 2006. pp. 90-99 Oct 2006. 2135 2134 2007-04-18T17:48:37Z Cates 4 /* Shape Modeling and Analysis */ wikitext text/x-wiki = Shape Modeling and Analysis = This research is a new method for constructing compact statistical point-based models of ensembles of similar shapes that does not rely on any specific surface parameterization. The method requires very little preprocessing or parameter tuning, and is applicable to a wider range of problems than existing methods, including nonmanifold surfaces and objects of arbitrary topology. The proposed method is to construct a point-based sampling of the shape ensemble that simultaneously maximizes both the geometric accuracy and the statistical simplicity of the model. Surface point samples, which also define the shape-to-shape correspondences, are modeled as sets of dynamic particles that are constrained to lie on a set of implicit surfaces. Sample positions are optimized by gradient descent on an energy function that balances the negative entropy of the distribution on each shape with the positive entropy of the ensemble of shapes. We also extend the method with a curvature-adaptive sampling strategy in order to better approximate the geometry of the objects. We have developed code based on ITK for computation of correspondence-based models, and have validated out method in several papers against several synthetic and real examples in two and three dimensions, including application to the statistical shape analysis of brain structures. We used hippocampus data from a schizo-typal personality disorder (SPD) study funded by the Stanley Foundation and UNC-MHNCRC (MH33127), and caudate data from a schizophrenia study funded by NIMH R01 MH 50740 (Shenton), NIH K05 MH 01110 (Shenton), NIMH R01 MH 52807 (McCarley), and a VA Merit Award (Shenton). Figure 1,2 illustrates results of hypothesis testing for group differences from the control population for the left/right hippocampus and the left/right caudate. Raw and FDR-corrected p-values are given. Areas of significant group differences ($p <= 0.05$) are shown in red. Areas with insignificant group differences ($p > 0.05$) are shown in blue. Our results correlate with with other published hypothesis testing results on this data. Our most recent work is in the application of the particle method to multi-object shape complexes. We have developed a novel method for computing surface point correspondences of multi-object anatomy that is a straightforward extension of the particle method for single-object anatomy. The correspondences take advantage of the statistical structure of an ensemble of complexes, and thus they are suitable for joint statistical analyses of shape and relative pose. The proposed method uses a dynamic particle system to optimize correspondence point positions across all structures in a complex simultaneously, in order to create a compact model of ensemble statistics. It is a different approach from previous methods for dealing with shape complexes, because to date researchers have considered the correspondence problem only for each structure independently, and have ignored intermodel correlations in the shape parameterization. These correlations are particularly important when the correspondences are constructed in order to reduce or minimize the information content of the ensemble. [[Image:Lcomb-grayscale.png|thumbnail|Figure 1]] [[Image:Rcomb-grayscale.png|thumbnail|Figure 2]] We have developed a formulation of the multi-object correspondence optimization, and have applied it to a proof-of-concept application to the analysis of brain structure complexes from a longitudinal study of pediatric autism that is underway at UNC chapel hill. This work is in conjunction with Martin Styner, Heather Cody Hazlett, and Joe Piven. Figure 3 shows the raw p-values from hypothesis testing for group differences as color-maps on mean shapes of the autism group (top row) and the normal control group (bottom row). Red indicates areas where significant group differences were found (p-values $< 0.05$), with blue elsewhere (p-values$>= 0.05$). The top row shows the results when relative geometric scale is included, and the bottom shows relative scale removed. Structures are shown in the their mean orientations, positions, and scale in the global coordinate frame. We computed the average orientation for each structure using methods for averaging in curved spaces. [[Image:meanviews.png|thumbnail|Figure 3]] == Publications == * J. Cates, P. Thomas Fletcher, M. Styner, M. Shenton, R. Whitaker. Shape Modeling and Analysis with Entropy-Based Particle Systems. IPMI 2007, accepted. * J. Cates, P. Thomas Fletcher, R. Whitaker. Entropy-Based Particle Systems for Shape Corresopndence. Mathematical Foundations of Computational Anatomy Workshop, MICCAI 2006. pp. 90-99 Oct 2006. 3964 2135 2007-04-18T17:49:09Z Cates 4 /* Shape Modeling and Analysis */ wikitext text/x-wiki = Shape Modeling and Analysis = This research is a new method for constructing compact statistical point-based models of ensembles of similar shapes that does not rely on any specific surface parameterization. The method requires very little preprocessing or parameter tuning, and is applicable to a wider range of problems than existing methods, including nonmanifold surfaces and objects of arbitrary topology. The proposed method is to construct a point-based sampling of the shape ensemble that simultaneously maximizes both the geometric accuracy and the statistical simplicity of the model. Surface point samples, which also define the shape-to-shape correspondences, are modeled as sets of dynamic particles that are constrained to lie on a set of implicit surfaces. Sample positions are optimized by gradient descent on an energy function that balances the negative entropy of the distribution on each shape with the positive entropy of the ensemble of shapes. We also extend the method with a curvature-adaptive sampling strategy in order to better approximate the geometry of the objects. We have developed code based on ITK for computation of correspondence-based models, and have validated out method in several papers against several synthetic and real examples in two and three dimensions, including application to the statistical shape analysis of brain structures. We used hippocampus data from a schizo-typal personality disorder (SPD) study funded by the Stanley Foundation and UNC-MHNCRC (MH33127), and caudate data from a schizophrenia study funded by NIMH R01 MH 50740 (Shenton), NIH K05 MH 01110 (Shenton), NIMH R01 MH 52807 (McCarley), and a VA Merit Award (Shenton). Figure 1,2 illustrates results of hypothesis testing for group differences from the control population for the left/right hippocampus and the left/right caudate. Raw and FDR-corrected p-values are given. Areas of significant group differences ($p <= 0.05$) are shown as dark regions. Areas with insignificant group differences ($p > 0.05$) are shown as light regions. Our results correlate with with other published hypothesis testing results on this data. Our most recent work is in the application of the particle method to multi-object shape complexes. We have developed a novel method for computing surface point correspondences of multi-object anatomy that is a straightforward extension of the particle method for single-object anatomy. The correspondences take advantage of the statistical structure of an ensemble of complexes, and thus they are suitable for joint statistical analyses of shape and relative pose. The proposed method uses a dynamic particle system to optimize correspondence point positions across all structures in a complex simultaneously, in order to create a compact model of ensemble statistics. It is a different approach from previous methods for dealing with shape complexes, because to date researchers have considered the correspondence problem only for each structure independently, and have ignored intermodel correlations in the shape parameterization. These correlations are particularly important when the correspondences are constructed in order to reduce or minimize the information content of the ensemble. [[Image:Lcomb-grayscale.png|thumbnail|Figure 1]] [[Image:Rcomb-grayscale.png|thumbnail|Figure 2]] We have developed a formulation of the multi-object correspondence optimization, and have applied it to a proof-of-concept application to the analysis of brain structure complexes from a longitudinal study of pediatric autism that is underway at UNC chapel hill. This work is in conjunction with Martin Styner, Heather Cody Hazlett, and Joe Piven. Figure 3 shows the raw p-values from hypothesis testing for group differences as color-maps on mean shapes of the autism group (top row) and the normal control group (bottom row). Red indicates areas where significant group differences were found (p-values $< 0.05$), with blue elsewhere (p-values$>= 0.05$). The top row shows the results when relative geometric scale is included, and the bottom shows relative scale removed. Structures are shown in the their mean orientations, positions, and scale in the global coordinate frame. We computed the average orientation for each structure using methods for averaging in curved spaces. [[Image:meanviews.png|thumbnail|Figure 3]] == Publications == * J. Cates, P. Thomas Fletcher, M. Styner, M. Shenton, R. Whitaker. Shape Modeling and Analysis with Entropy-Based Particle Systems. IPMI 2007, accepted. * J. Cates, P. Thomas Fletcher, R. Whitaker. Entropy-Based Particle Systems for Shape Corresopndence. Mathematical Foundations of Computational Anatomy Workshop, MICCAI 2006. pp. 90-99 Oct 2006. File:Meanviews.png 6 1829 3201 2007-04-18T17:33:18Z Cates 4 wikitext text/x-wiki File:Lcomb-grayscale.png 6 1830 3202 2007-04-18T17:46:27Z Cates 4 wikitext text/x-wiki File:Rcomb-grayscale.png 6 1831 3203 2007-04-18T17:46:53Z Cates 4 wikitext text/x-wiki Main Page 0 1 4903 4902 2007-05-07T17:04:29Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === (test edit) We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4904 4903 2007-05-07T17:05:11Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === test edit We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4905 4904 2007-05-07T17:05:37Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this TEST: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4906 4905 2007-05-07T17:10:08Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === <b>This is a test from the Emergency Wiki Repair System!!!<br /> This is only a test.</b> We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4907 4906 2007-05-07T17:11:55Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 2137 4907 2007-05-07T20:20:03Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == Test edit. ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4908 2137 2007-05-07T20:26:47Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> <math>\sqrt{2}</math> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4909 4908 2007-05-07T20:27:12Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> <math>\sqrt{2}</math> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] 4910 4909 2007-05-07T20:27:28Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] CIBC:Workshops:WorkshopCRC06 0 1036 4911 3172 2007-05-11T20:11:33Z Erikj 2 /* CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focused on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop addressed these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants consisted of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop was not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] * [[Media:CRA-NIH_Workshop_Final_Registration_List_7-3-06.pdf|Final Registration List - CRA-NIH_Workshop_Final_Registration_List_7-3-06.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH-Workshop06-Johnson.pdf|Chris Johnson's Presentation (Large 61MB) - CRA-NIH-Workshop06-Johnson.pdf]] * Lee Hood's Presentation * [[Media:NIH_CRA_june06.pdf|Jill Mesirov's Presentation (Large 27MB) - NIH_CRA_june06.pdf]] * [[Media:CRA-NIH-Reed06.pdf|Dan Reed's Presentation (Large 15MB) - CRA-NIH-Reed06.pdf]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> 4913 4911 2007-05-11T20:23:13Z Erikj 2 /* CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 */ wikitext text/x-wiki == CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006 == === Recommendations === <b>[[Media:CRA-NIH-Workshop-Recommendations-Final.pdf|CRA-NIH Computing Research Challenges in Biomedicine Workshop Recommendations]]</b> === Overview of the Workshop === Bethesda Marriott Hotel, 5151 Pooks Hill Rd., Bethesda, MD<br> Register: http://www.blsmeetings.net/H1009 (by invitation only) This meeting focused on computational needs that are central to the mission of NIH. As noted in the 2004 NIH Roadmap vision, computing is essential to progress in biomedicine: The success of computational biology is shown by the fact that computation has become integral and critical to modern biomedical research. However, the report also noted the substantial and substantive challenges biomedical researchers face in embracing cutting-edge computing research, as well as those faced by computing researchers in understanding current and future biomedical computing needs: Because computation is integral to biomedical research, its deficiencies have become significant limiters on the rate of progress of biomedical research. This workshop addressed these and other associated challenges for realizing the synergies between these two fields that can drive both forward through cooperative effort. The workshop participants consisted of a small number of invited leaders in computing and selected NIH Program Directors. The objective of the Workshop was not to create a report, but to develop a list of focused action items that will have impact within the NIH and computing communities. === Agenda === * [[Media:CRA-NIH-Agenda06.pdf|Workshop Agenda - CRA-NIH-Agenda06.pdf]] === Participant List === * [[Media:CRA-NIH_2006_Participant_List.pdf|Participant List - CRA-NIH_2006_Participant_List.pdf]] * [[Media:CRA-NIH_Workshop_Final_Registration_List_7-3-06.pdf|Final Registration List - CRA-NIH_Workshop_Final_Registration_List_7-3-06.pdf]] === Workshop Overview and Goals Slides === * [[Media:CRA-NIH_2006_Workshop-Goals.ppt|Overview and Goals - CRA-NIH_2006_Workshop-Goals.ppt]] === Workshop Presentations === * [[Media:CRA-NIH-Workshop06-Johnson.pdf|Chris Johnson's Presentation (Large 61MB) - CRA-NIH-Workshop06-Johnson.pdf]] * Lee Hood's Presentation * [[Media:NIH_CRA_june06.pdf|Jill Mesirov's Presentation (Large 27MB) - NIH_CRA_june06.pdf]] * [[Media:CRA-NIH-Reed06.pdf|Dan Reed's Presentation (Large 15MB) - CRA-NIH-Reed06.pdf]] === Working Group Slides === * [[Media:CRA-NIH_2006_RedTeam.ppt|Red Team Slides - CRA-NIH_2006_RedTeam.ppt]] * [[Media:CRA-NIH_2006_BlueTeam.ppt|Blue Team Slides - CRA-NIH_2006_BlueTeam.ppt]] * [[Media:CRA-NIH_2006_GreenTeam.ppt|Green Team Slides - CRA-NIH_2006_GreenTeam.ppt]] === Reports and Related Publications === * [[Image:NIH-NSF_Report_th.gif|left]] [[http://tab.computer.org/vgtc/vrc/index.html NIH/NSF Visualization Research Challenges Report]]<br clear="all"> * [[Image:PITAC_Computational_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf PITAC Report on Computational Science]]<br clear="all"> *[[Image:PITAC_Revolutionizing_th.gif|left]] [[http://www.nitrd.gov/pitac/reports/20040721_hit_report.pdf PITAC Report on Revolutionizing Health Care Through Information Technology]]<br clear="all"> * [[http://www.eecs.umich.edu/~jag/wdmbio/wdmb_rpt.pdf NIH/NSF Report on Research Challenges in Data Management for Biomedical Science]]<br clear="all"> * [[http://doegenomestolife.org/pubs/NRCComputingandBiology/index.shtml Catalyzing Inquiry at the Interface between Computing and Biology]] * [[http://www.nih.gov/about/director/060399.htm The Biomedical Information Science and Technology Initiative]] * [[http://www.genome.gov/11007524 A Vision for the Future of Genomics Research]] *[[Image:2005_math_reports-1.gif|left]] [[http://www7.nationalacademies.org/deps/2005_math_reports.html Mathematics and 21st Century Biology]]<br clear="all"> *[[Image:NSB-05-40_th.gif|left]] [[http://www.nsf.gov/pubs/2005/nsb0540/start.jsp NSB-05-40, Long-Lived Digital Data Collections Enabling Research and Education in the 21st Century]]<br clear="all"> File:CRA-NIH-Workshop-Recommendations-Final.pdf 6 2560 4912 2007-05-11T20:12:37Z Erikj 2 CRA-NIH Computing Research Challenges in Biomedicine Workshop Recommendations wikitext text/x-wiki CRA-NIH Computing Research Challenges in Biomedicine Workshop Recommendations CIBC:Project:Power App 0 1053 4914 3188 2007-05-24T09:51:08Z Mjc 35 /* CAMAL mesher (2.5 mins) */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (4.35 mins including JoinMesh on each tetvol) === * Number of Tet elements checked = '''3407658''' * Euler characteristics for this mesh indicate 2147483647 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3407658 Faces: 6822321 Edges: 3989022 Nodes: 574363 * Aspect Ratio: Low = 1.00002, Average = 1.31989, High = 1103.93 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37031, High = 125.679 * Volume: Low = 3.6855e-06, Average = 6.02404, High = 1117.93 * Condition: Low = 1.00002, Average = 1.23959, High = 43.9157 * Jacobian: Low = 2.2113e-05, Average = 36.1442, High = 6707.59 * '''Scaled_Jacobian: Low = 0.00291498, Average = 0.618757, High = 0.997019''' * Shape: Low = 0.0398733, Average = 0.830174, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' At this time I cannot get a FE mesh generated including the Heart surface, (probably because the heart surface intersects the lungs somewhere) but below are the results for torso boundary, bones, and lungs. The results are still an interesting comparison. === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === * Number of Tet elements checked = '''14300408''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 14300408 Faces: 29156724 Edges: 17524972 Nodes: 2668657 * Aspect Ratio: Low = 1.00006, Average = 1.06422e+21, High = 1.45221e+28 * Aspect Ratio (gamma): Low = 1.00073, Average = 3.44334e+07, High = 3.81639e+14 * Volume: Low = 3.83988e-19, Average = 1.4405, High = 266.872 * Condition: Low = 1.00005, Average = 1.9262e+07, High = 2.33327e+14 * Jacobian: Low = 2.30393e-18, Average = 8.64298, High = 1601.23 * '''Scaled_Jacobian: Low = 1.40881e-15, Average = 0.37441, High = 0.995652''' * Shape: Low = 1.90147e-10, Average = 0.635895, High = 0.999953 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 4915 4914 2007-05-24T10:04:00Z Mjc 35 /* CAMAL mesher (4.35 mins including JoinMesh on each tetvol) */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (2.5 mins) === * Number of Tet elements checked = '''4134572''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4134572 Faces: 8293379 Edges: 4861489 Nodes: 702683 * Aspect Ratio: Low = 1.00011, Average = 15.6498, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18851, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96518, High = 251.506 * Condition: Low = 1.00009, Average = 1.74342, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7911, High = 1509.04 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371746, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648068, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (4.42 mins including JoinMesh on each tetvol) === * Number of Tet elements checked = '''3415236''' * Euler characteristics for this mesh indicate 2147483647 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3415236 Faces: 6837477 Edges: 3997659 Nodes: 575422 * Aspect Ratio: Low = 1.00002, Average = 1.32974, High = 1553.55 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37102, High = 74.7166 * Volume: Low = 3.23703e-06, Average = 6.01067, High = 1068.21 * Condition: Low = 1.00002, Average = 1.24125, High = 56.6776 * Jacobian: Low = 1.94222e-05, Average = 36.064, High = 6409.24 * '''Scaled_Jacobian: Low = 0.0070007, Average = 0.618421, High = 0.997181''' * Shape: Low = 0.0563958, Average = 0.829903, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' At this time I cannot get a FE mesh generated including the Heart surface, (probably because the heart surface intersects the lungs somewhere) but below are the results for torso boundary, bones, and lungs. The results are still an interesting comparison. === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === * Number of Tet elements checked = '''14300408''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 14300408 Faces: 29156724 Edges: 17524972 Nodes: 2668657 * Aspect Ratio: Low = 1.00006, Average = 1.06422e+21, High = 1.45221e+28 * Aspect Ratio (gamma): Low = 1.00073, Average = 3.44334e+07, High = 3.81639e+14 * Volume: Low = 3.83988e-19, Average = 1.4405, High = 266.872 * Condition: Low = 1.00005, Average = 1.9262e+07, High = 2.33327e+14 * Jacobian: Low = 2.30393e-18, Average = 8.64298, High = 1601.23 * '''Scaled_Jacobian: Low = 1.40881e-15, Average = 0.37441, High = 0.995652''' * Shape: Low = 1.90147e-10, Average = 0.635895, High = 0.999953 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 4916 4915 2007-05-24T10:14:33Z Mjc 35 /* TetGen mesher -pqAAa200.0z (2.5 mins) */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (~3.21 mins) === * Number of Tet elements checked = '''4133993''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4133993 Faces: 8292237 Edges: 4860849 Nodes: 702606 * Aspect Ratio: Low = 1.00011, Average = 15.2247, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18738, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96587, High = 267.951 * Condition: Low = 1.00009, Average = 1.74266, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7952, High = 1607.7 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371769, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648091, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (4.42 mins including JoinMesh on each tetvol) === * Number of Tet elements checked = '''3415236''' * Euler characteristics for this mesh indicate 2147483647 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3415236 Faces: 6837477 Edges: 3997659 Nodes: 575422 * Aspect Ratio: Low = 1.00002, Average = 1.32974, High = 1553.55 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37102, High = 74.7166 * Volume: Low = 3.23703e-06, Average = 6.01067, High = 1068.21 * Condition: Low = 1.00002, Average = 1.24125, High = 56.6776 * Jacobian: Low = 1.94222e-05, Average = 36.064, High = 6409.24 * '''Scaled_Jacobian: Low = 0.0070007, Average = 0.618421, High = 0.997181''' * Shape: Low = 0.0563958, Average = 0.829903, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' At this time I cannot get a FE mesh generated including the Heart surface, (probably because the heart surface intersects the lungs somewhere) but below are the results for torso boundary, bones, and lungs. The results are still an interesting comparison. === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === * Number of Tet elements checked = '''14300408''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 14300408 Faces: 29156724 Edges: 17524972 Nodes: 2668657 * Aspect Ratio: Low = 1.00006, Average = 1.06422e+21, High = 1.45221e+28 * Aspect Ratio (gamma): Low = 1.00073, Average = 3.44334e+07, High = 3.81639e+14 * Volume: Low = 3.83988e-19, Average = 1.4405, High = 266.872 * Condition: Low = 1.00005, Average = 1.9262e+07, High = 2.33327e+14 * Jacobian: Low = 2.30393e-18, Average = 8.64298, High = 1601.23 * '''Scaled_Jacobian: Low = 1.40881e-15, Average = 0.37441, High = 0.995652''' * Shape: Low = 1.90147e-10, Average = 0.635895, High = 0.999953 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 4919 4916 2007-05-24T10:24:47Z Mjc 35 /* TetGen mesher -pqAAa200.0z (~3.21 mins) */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (~3.21 mins) === * Number of Tet elements checked = '''4133993''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4133993 Faces: 8292237 Edges: 4860849 Nodes: 702606 * Aspect Ratio: Low = 1.00011, Average = 15.2247, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18738, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96587, High = 267.951 * Condition: Low = 1.00009, Average = 1.74266, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7952, High = 1607.7 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371769, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648091, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 [[Image:Tetgen-tetvol.png]] === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (4.42 mins including JoinMesh on each tetvol) === * Number of Tet elements checked = '''3415236''' * Euler characteristics for this mesh indicate 2147483647 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3415236 Faces: 6837477 Edges: 3997659 Nodes: 575422 * Aspect Ratio: Low = 1.00002, Average = 1.32974, High = 1553.55 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37102, High = 74.7166 * Volume: Low = 3.23703e-06, Average = 6.01067, High = 1068.21 * Condition: Low = 1.00002, Average = 1.24125, High = 56.6776 * Jacobian: Low = 1.94222e-05, Average = 36.064, High = 6409.24 * '''Scaled_Jacobian: Low = 0.0070007, Average = 0.618421, High = 0.997181''' * Shape: Low = 0.0563958, Average = 0.829903, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' At this time I cannot get a FE mesh generated including the Heart surface, (probably because the heart surface intersects the lungs somewhere) but below are the results for torso boundary, bones, and lungs. The results are still an interesting comparison. === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === * Number of Tet elements checked = '''14300408''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 14300408 Faces: 29156724 Edges: 17524972 Nodes: 2668657 * Aspect Ratio: Low = 1.00006, Average = 1.06422e+21, High = 1.45221e+28 * Aspect Ratio (gamma): Low = 1.00073, Average = 3.44334e+07, High = 3.81639e+14 * Volume: Low = 3.83988e-19, Average = 1.4405, High = 266.872 * Condition: Low = 1.00005, Average = 1.9262e+07, High = 2.33327e+14 * Jacobian: Low = 2.30393e-18, Average = 8.64298, High = 1601.23 * '''Scaled_Jacobian: Low = 1.40881e-15, Average = 0.37441, High = 0.995652''' * Shape: Low = 1.90147e-10, Average = 0.635895, High = 0.999953 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 4920 4919 2007-05-24T10:25:04Z Mjc 35 /* CAMAL mesher (4.42 mins including JoinMesh on each tetvol) */ wikitext text/x-wiki =afront generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' === Images === [[Image:afront-body.png]] [[Image:afront-body-inner.png]] === TetGen mesher -pqAAa200.0z (~3.21 mins) === * Number of Tet elements checked = '''4133993''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 4133993 Faces: 8292237 Edges: 4860849 Nodes: 702606 * Aspect Ratio: Low = 1.00011, Average = 15.2247, High = 5.00456e+07 * Aspect Ratio (gamma): Low = 1.00079, Average = 2.18738, High = 12859.1 * Volume: Low = 1.74183e-07, Average = 4.96587, High = 267.951 * Condition: Low = 1.00009, Average = 1.74266, High = 11067.6 * Jacobian: Low = 1.0451e-06, Average = 29.7952, High = 1607.7 * '''Scaled_Jacobian: Low = 6.33094e-05, Average = 0.371769, High = 0.990632''' * Shape: Low = 0.00182271, Average = 0.648091, High = 0.999912 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 [[Image:Tetgen-tetvol.png]] === TetGen mesher -pq1.0AAa200.0z (30 mins) === * Number of Tet elements checked = '''12514089''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 12514089 Faces: 25063106 Edges: 14574288 Nodes: 2025272 * Aspect Ratio: Low = 1, Average = 12.8492, High = 7.48795e+07 * Aspect Ratio (gamma): Low = 1.00066, Average = 1.63764, High = 20491.9 * Volume: Low = 1.83958e-08, Average = 1.64046, High = 240.929 * Condition: Low = 1, Average = 1.43677, High = 17421.2 * Jacobian: Low = 1.10375e-07, Average = 9.84277, High = 1445.58 * '''Scaled_Jacobian: Low = 4.80254e-05, Average = 0.541553, High = 0.999044''' * Shape: Low = 0.00133599, Average = 0.773061, High = 0.999999 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 === CAMAL mesher (4.42 mins including JoinMesh on each tetvol) === * Number of Tet elements checked = '''3415236''' * Euler characteristics for this mesh indicate 2147483647 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 3415236 Faces: 6837477 Edges: 3997659 Nodes: 575422 * Aspect Ratio: Low = 1.00002, Average = 1.32974, High = 1553.55 * Aspect Ratio (gamma): Low = 1.00069, Average = 1.37102, High = 74.7166 * Volume: Low = 3.23703e-06, Average = 6.01067, High = 1068.21 * Condition: Low = 1.00002, Average = 1.24125, High = 56.6776 * Jacobian: Low = 1.94222e-05, Average = 36.064, High = 6409.24 * '''Scaled_Jacobian: Low = 0.0070007, Average = 0.618421, High = 0.997181''' * Shape: Low = 0.0563958, Average = 0.829903, High = 0.99998 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 [[Image:Camal-tetvol.png]] =marching cubes (SCIRun isosurface module) generated surfaces = '''Note: all statistics regarding the FE Tet meshes are reported from Verdict using the SCIRun bridge to Verdict.''' At this time I cannot get a FE mesh generated including the Heart surface, (probably because the heart surface intersects the lungs somewhere) but below are the results for torso boundary, bones, and lungs. The results are still an interesting comparison. === Images === [[Image:mc-body.png]] [[Image:mc-body-inner.png]] === TetGen mesher -pqAAa200.0z (1:35 hours) === * Number of Tet elements checked = '''14300408''' * Euler characteristics for this mesh indicate 0 holes in this block of elements. <nowiki> (Assumes a single contiguous block of elements.)</nowiki> * Element counts: Tets: 14300408 Faces: 29156724 Edges: 17524972 Nodes: 2668657 * Aspect Ratio: Low = 1.00006, Average = 1.06422e+21, High = 1.45221e+28 * Aspect Ratio (gamma): Low = 1.00073, Average = 3.44334e+07, High = 3.81639e+14 * Volume: Low = 3.83988e-19, Average = 1.4405, High = 266.872 * Condition: Low = 1.00005, Average = 1.9262e+07, High = 2.33327e+14 * Jacobian: Low = 2.30393e-18, Average = 8.64298, High = 1601.23 * '''Scaled_Jacobian: Low = 1.40881e-15, Average = 0.37441, High = 0.995652''' * Shape: Low = 1.90147e-10, Average = 0.635895, High = 0.999953 * Shape_Size: Low = 0, Average = 0, High = 0 * Distortion: Low = 1, Average = 1, High = 1 File:Camal-tetvol.png 6 2561 4917 2007-05-24T10:23:10Z Mjc 35 wikitext text/x-wiki File:Tetgen-tetvol.png 6 2562 4918 2007-05-24T10:23:58Z Mjc 35 wikitext text/x-wiki Help:Editing 12 1015 4921 3149 2007-07-02T23:12:58Z Matthew.jolley@tch.harvard.edu 23 /* Helpful Links */ wikitext text/x-wiki = Helpful Links = [http://meta.wikimedia.org/wiki/Help:Contents#For_editors Media Wiki Editing Help] [[KidDefib]] 4923 4921 2007-07-02T23:13:51Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki = Helpful Links = [http://meta.wikimedia.org/wiki/Help:Contents#For_editors Media Wiki Editing Help] KidDefib 0 2563 4922 2007-07-02T23:13:29Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki Kid Defib Project ---- 4924 4922 2007-07-03T02:39:59Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki = KidDefib Project = ---- 4925 4924 2007-07-05T20:43:29Z Matthew.jolley@tch.harvard.edu 23 /* KidDefib Project */ wikitext text/x-wiki = KidDefib Project = ---- '''Introduction''' '''Goals''' '''Requirements''' '''Versions''' KidDefib 1.0 '''Available Torso Models''' '''Support''' KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are interested in funding it's improvement both on the FEM and model generation sides of the Projects 4926 4925 2007-07-05T20:59:49Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki = KidDefib Project = ---- '''Introduction''' Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Animal models of defibrillation have shown defibrillation with subcutaneous electrodes to be feasible, but little is known about ideal placement or the resulting electric fields. In the past, insertable electrodes have been used to map the epicardium and measure electric fields transmurally in animals but these techniques are expensive, time consuming and not necessarily applicable to human anatomy. Furthermore they do not provide detailed descriptions of the electric field throughout the entire myocardium and can perturb the measured fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. '''Goals''' *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos '''Requirements''' *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. Ideal machine would be 8 cores and 8GB of RAM in the genre of a Macpro. To run at full resolution you need a 64 bit operating system(Ubuntu 7.04 works well), pending release of OSX Leopard 64 bit for OSX. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. KidDefib 1.0 '''Available Torso Models''' ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release '''Versions''' KidDefib 1.0 ''' Obtaining KidDefib''' ''' KidDefib Tutorial''' '''Support''' KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. 4928 4926 2007-07-05T21:03:12Z Matthew.jolley@tch.harvard.edu 23 /* KidDefib Project */ wikitext text/x-wiki = KidDefib Project = ---- '''Introduction''' Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. '''Goals''' *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos '''Requirements''' *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. Ideal machine would be 8 cores and 8GB of RAM in the genre of a Macpro. To run at full resolution you need a 64 bit operating system(Ubuntu 7.04 works well), pending release of OSX Leopard 64 bit for OSX. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. '''Available Torso Models''' ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release '''Versions''' KidDefib 1.0 '''Obtaining KidDefib''' '''KidDefib Installation''' '''KidDefib Tutorial''' '''Support''' KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. 4929 4928 2007-07-05T21:04:01Z Matthew.jolley@tch.harvard.edu 23 /* KidDefib Project */ wikitext text/x-wiki = KidDefib Project = ---- '''Introduction''' Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. '''Goals''' *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos '''Requirements''' *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. Ideal machine would be 8 cores and 8GB of RAM in the genre of a Macpro. To run at full resolution you need a 64 bit operating system(Ubuntu 7.04 works well), pending release of OSX Leopard 64 bit for OSX. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. '''Available Torso Models''' ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release '''Versions''' KidDefib 1.0 '''Obtaining KidDefib''' '''KidDefib Installation''' '''KidDefib Tutorial''' '''Support''' KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. 4927 4929 2007-07-05T21:05:01Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki = KidDefib Project = ---- '''Introduction''' Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Animal models of defibrillation have shown defibrillation with subcutaneous electrodes to be feasible, but little is known about ideal placement or the resulting electric fields. In the past, insertable electrodes have been used to map the epicardium and measure electric fields transmurally in animals but these techniques are expensive, time consuming and not necessarily applicable to human anatomy. Furthermore they do not provide detailed descriptions of the electric field throughout the entire myocardium and can perturb the measured fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. '''Goals''' *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos '''Requirements''' *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. Ideal machine would be 8 cores and 8GB of RAM in the genre of a Macpro. To run at full resolution you need a 64 bit operating system(Ubuntu 7.04 works well), pending release of OSX Leopard 64 bit for OSX. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. '''Available Torso Models''' ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release '''Versions''' KidDefib 1.0 '''Obtaining KidDefib''' '''KidDefib Installation''' '''KidDefib Tutorial''' '''Support''' KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. 4930 4927 2007-07-09T23:50:11Z Matthew.jolley@tch.harvard.edu 23 /* KidDefib Project */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- '''Goals''' *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos '''Requirements''' *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. Ideal machine would be 8 cores and 8GB of RAM in the genre of a Macpro. To run at full resolution you need a 64 bit operating system(Ubuntu 7.04 works well), pending release of OSX Leopard 64 bit for OSX. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. '''Available Torso Models''' ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release '''Versions''' KidDefib 1.0 '''Obtaining KidDefib''' '''KidDefib Installation''' '''KidDefib Tutorial''' '''Support''' KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. 4931 4930 2007-07-09T23:51:00Z Matthew.jolley@tch.harvard.edu 23 /* '''Introduction''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- '''Requirements''' *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. Ideal machine would be 8 cores and 8GB of RAM in the genre of a Macpro. To run at full resolution you need a 64 bit operating system(Ubuntu 7.04 works well), pending release of OSX Leopard 64 bit for OSX. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. '''Available Torso Models''' ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release '''Versions''' KidDefib 1.0 '''Obtaining KidDefib''' '''KidDefib Installation''' '''KidDefib Tutorial''' '''Support''' KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. 4932 4931 2007-07-09T23:53:57Z Matthew.jolley@tch.harvard.edu 23 /* '''Goals''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 ===='''Obtaining KidDefib'''==== '''KidDefib Installation''' '''KidDefib Tutorial''' <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4933 4932 2007-07-09T23:54:22Z Matthew.jolley@tch.harvard.edu 23 /* '''Obtaining KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 ===='''Obtaining and Using KidDefib'''==== '''KidDefib Installation''' '''KidDefib Tutorial''' <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4934 4933 2007-07-09T23:56:25Z Matthew.jolley@tch.harvard.edu 23 /* '''Obtaining and Using KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 ===='''Obtaining and Using KidDefib'''==== [[KidDefib:KidDefib_Installation]] [[KidDefib:KidDefib_Tutorial]] <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4935 4934 2007-07-09T23:57:16Z Matthew.jolley@tch.harvard.edu 23 /* '''Versions''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Obtaining and Using KidDefib'''==== [[KidDefib:KidDefib_Installation]] [[KidDefib:KidDefib_Tutorial]] <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4936 4935 2007-07-09T23:58:59Z Matthew.jolley@tch.harvard.edu 23 /* '''Obtaining and Using KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4937 4936 2007-07-10T00:00:57Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Create an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4938 4937 2007-07-10T00:03:11Z Matthew.jolley@tch.harvard.edu 23 /* '''Goals''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4939 4938 2007-07-10T00:07:46Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: svn co https://code.sci.utah.edu/svn/SCIRun/cibc/branches/virtual-stable cd into virtual-stable/SCIRun Run the build script: <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4940 4939 2007-07-10T00:15:41Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre>svn co https://code.sci.utah.edu/svn/SCIRun/cibc/branches/virtual-stable</pre>''' Change into the SCIRun directory: '''<pre> cd virtual-stable/SCIRun</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores for example: To download and build the 3.0.2 ITK release and install it to your thirdparty, add the '''--with-itk''' option when running the build script. '''Note:''' building the full ITK takes a great deal of time and may not be necessary for your purposes. For more details on when ITK is needed click <b>[[CIBC:Documentation:SCIRun:Installation:ITK|here]]</b> For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre>cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre>ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4941 4940 2007-07-10T00:16:17Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre> svn co https://code.sci.utah.edu/svn/SCIRun/cibc/branches/virtual-stable</pre>''' Change into the SCIRun directory: '''<pre> cd virtual-stable/SCIRun</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores for example: To download and build the 3.0.2 ITK release and install it to your thirdparty, add the '''--with-itk''' option when running the build script. '''Note:''' building the full ITK takes a great deal of time and may not be necessary for your purposes. For more details on when ITK is needed click <b>[[CIBC:Documentation:SCIRun:Installation:ITK|here]]</b> For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre>cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre>ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4942 4941 2007-07-10T00:18:04Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre> svn co https://code.sci.utah.edu/svn/SCIRun/cibc/branches/virtual-stable</pre>''' Change into the SCIRun directory: '''<pre> cd virtual-stable/SCIRun</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre>cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre>ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4943 4942 2007-07-10T00:18:49Z Matthew.jolley@tch.harvard.edu 23 /* '''Support''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre> svn co https://code.sci.utah.edu/svn/SCIRun/cibc/branches/virtual-stable</pre>''' Change into the SCIRun directory: '''<pre> cd virtual-stable/SCIRun</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre>cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre>ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4944 4943 2007-07-10T00:19:52Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre> svn co https://code.sci.utah.edu/svn/SCIRun/cibc/branches/virtual-stable</pre>''' Change into the SCIRun directory: '''<pre> cd virtual-stable/SCIRun</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4945 4944 2007-07-10T00:33:31Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' Change into the SCIRun directory: '''<pre> cd virtual-stable/SCIRun</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4946 4945 2007-07-10T00:37:13Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== ''Normal Anatomy'' 2 year old-12 kg female 10 year old-32kg male 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4947 4946 2007-07-10T00:38:59Z Matthew.jolley@tch.harvard.edu 23 /* '''Available Torso Models''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4948 4947 2007-07-10T01:28:33Z Matthew.jolley@tch.harvard.edu 23 /* '''KidDefib Tutorial''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]: Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== You now have SCIRun working and need to download the data and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4949 4948 2007-07-10T01:36:32Z Matthew.jolley@tch.harvard.edu 23 /* '''Installing KidDefib''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== You now have SCIRun working and need to download the data and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4950 4949 2007-07-10T01:41:08Z Matthew.jolley@tch.harvard.edu 23 /* '''KidDefib Tutorial''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC. <br> ---- 4951 4950 2007-07-10T01:43:33Z Matthew.jolley@tch.harvard.edu 23 /* '''Support KidDefib Development''' */ wikitext text/x-wiki ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- KidDefib 0 2563 4952 4951 2007-07-10T03:19:18Z Matthew.jolley@tch.harvard.edu 23 /* '''Introduction''' */ wikitext text/x-wiki ---- ===='''People'''==== Matthew Jolley, Jeroen Stinstra, David Weinstein, Martin Cole, Michael Callahan, Steve Pieper, Dana Brooks, Frank Cecchin, John Triedman, Rob Maclod, <br> ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- 4953 4952 2007-07-10T03:19:55Z Matthew.jolley@tch.harvard.edu 23 /* '''People''' */ wikitext text/x-wiki ---- <br> ---- ===='''People'''==== Matthew Jolley, Jeroen Stinstra, David Weinstein, Martin Cole, Michael Callahan, Steve Pieper, Dana Brooks, Frank Cecchin, John Triedman, Rob Maclod, <br> ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- 4954 4953 2007-07-10T03:21:14Z Matthew.jolley@tch.harvard.edu 23 /* '''People''' */ wikitext text/x-wiki ---- <br> ---- ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- 4955 4954 2007-07-10T03:21:45Z Matthew.jolley@tch.harvard.edu 23 wikitext text/x-wiki ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''People'''==== Matthew Jolley, Jeroen Stinstra, David Weinstein, Martin Cole, Michael Callahan, Steve Pieper, Dana Brooks, Frank Cecchin, John Triedman, Rob Maclod, <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- 4956 4955 2007-07-10T03:24:58Z Matthew.jolley@tch.harvard.edu 23 /* '''People''' */ wikitext text/x-wiki ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''People'''==== '''Department of Cardiology, Children's Hospital Boston''' Matthew Jolley, Frank Cecchin, John Triedman ''' CIBC, Scientific Computing and Imaging Institute''' Jeroen Stinstra, David Weinstein, Michael Callahan, Martin Cole, Rob Macleod, Dana Brooks Surgical Planning Laboratory Steve Pieper, Gordon Kindlmann, PhD <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- 4957 4956 2007-07-10T03:27:43Z Matthew.jolley@tch.harvard.edu 23 /* '''People''' */ wikitext text/x-wiki ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''People'''==== ''Department of Cardiology, Children's Hospital Boston'': Matthew Jolley, Frank Cecchin, John Triedman ''CIBC, Scientific Computing and Imaging Institute'': Jeroen Stinstra, David Weinstein, Michael Callahan, Martin Cole, Rob Macleod, Dana Brooks ''Surgical Planning Laboratory'': Steve Pieper, Gordon Kindlmann, PhD <br> ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- 4958 4957 2007-07-10T03:28:09Z Matthew.jolley@tch.harvard.edu 23 /* '''People''' */ wikitext text/x-wiki ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''People'''==== ''Department of Cardiology, Children's Hospital Boston'': Matthew Jolley, Frank Cecchin, John Triedman ''CIBC, Scientific Computing and Imaging Institute'': Jeroen Stinstra, David Weinstein, Michael Callahan, Martin Cole, Rob Macleod, Dana Brooks ''Surgical Planning Laboratory'': Steve Pieper ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- 4959 4958 2007-07-10T03:34:20Z Matthew.jolley@tch.harvard.edu 23 /* '''KidDefib Tutorial''' */ wikitext text/x-wiki ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''People'''==== ''Department of Cardiology, Children's Hospital Boston'': Matthew Jolley, Frank Cecchin, John Triedman ''CIBC, Scientific Computing and Imaging Institute'': Jeroen Stinstra, David Weinstein, Michael Callahan, Martin Cole, Rob Macleod, Dana Brooks ''Surgical Planning Laboratory'': Steve Pieper ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Getting Help'''==== This is currently a small project to make available a resource created to determine optimal electrode position for ICD placement in children. Due to time constrainst support is limited, but feel welcome to subscribe to the SCIRun users list if you run into trouble. [http://software.sci.utah.edu/mailinglists.html Subscribe to SCIRun Users List] We plan to have several hands on tutorials in the Boston and Salt Lake City areas for those seriously interested in utilizing the software later in 2007. <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- 4960 4959 2007-07-10T03:38:22Z Matthew.jolley@tch.harvard.edu 23 /* '''Getting Help''' */ wikitext text/x-wiki ===='''Introduction'''==== Implantable cardiac defibrillators (ICDs) are widely used in patients at risk of fatal cardiac arrhythmias, and indications for their use continue to expand. Although ICDs are routinely implanted in adult patients using a transvenous system, there is a growing population of pediatric and adult patients in whom transvenous ICD systems cannot or should not be implanted. These include very small patients and those with intracardiac shunts or anatomical obstruction to lead placement. In these groups, several novel, non-transvenous approaches to ICD implantation have been reported. Such approaches have consisted of ad hoc adaptations of existing ICD systems, with the goals of minimizing system invasiveness, adapting to complex anatomy, and achieving low defibrillation thresholds. These approaches assume efficacy by extrapolation from limited animal research, andpost-implantation assessment of defibrillation thresholds (DFTs). Although defibrillation research has elucidated reasonably accurate relations between distribution of myocardial voltage gradient and both defibrillation efficacy and myocardial injury, no reports currently describe the effects of interactions between variations in body size and novel ICD geometries on these fields. Finite element modeling (FEM) of defibrillation has been shown to correlate well with clinically observed DFTs in laboriously constructed conductivity models of the adult torso. These studies have shown the utility of realistic models to accurately predict threshold voltages, currents, and impedances, as well as the electric fields voltages at known measurement locations within a torso model. They also may be used to compare the relative efficacy of electrode orientations in a given torso model. The demands of extending these studies to highly variable electrode design and placement, not to mention body size, habitus and possible gross anatomical variability, mean that such simulation systems need to allow more automatic model creation, interactive electrode placement, a wide variety of electrodes, interactive execution of the simulations, and visualization of the results. The goal of this project is the creation of an open-source subject-specific, image-based finite element modeling software environment with the goal of enabling determination of optimal electrode placement in special populations of adults and children. <br> ---- ===='''People'''==== ''Department of Cardiology, Children's Hospital Boston'': Matthew Jolley, Frank Cecchin, John Triedman ''CIBC, Scientific Computing and Imaging Institute'': Jeroen Stinstra, David Weinstein, Michael Callahan, Martin Cole, Rob Macleod, Dana Brooks ''Surgical Planning Laboratory'': Steve Pieper ---- ===='''Goals'''==== *Continue to improve an open-source toolkit for modeling of ICD electrode placement in image based torso models *Continue to improve usability and functionality of modeling environment *Continue to expand number of available modeling torsos <br> ---- ===='''Requirements'''==== *Currently the project supports OSX and linux (Ubuntu/Fedora) with no immediate plans to support Windows *Runs best with at least 2 cores and 4 GB of RAM. To run at full resolution you need a 64 bit operating system and 4-6 GB of RAM. *Currently we utilize MATLAB for a few steps within the primarily open-source environment. We have used versions as far back as 2005 without difficulty. We are working to eliminate this requirement. <br> ---- ===='''Available Torso Models'''==== Torso models segmented in 3D Slicer and combined using Teem. For instructions on how to make your own follow this link. ''Normal Anatomy'' 2 year old-12 kg female, 10 year old-32kg male, 29 year old-75kg male ''Congenital Heart Disease'' Pending release <br> ---- ===='''Versions'''==== KidDefib 1.0 <br> ---- ===='''Installing KidDefib'''==== To begin review the general SCIRun installation procedures described [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Installation:Unix-v3.0.2 here]. Obtain virtual directory by using subversion as described in the link above: '''<pre> fillin path</pre>''' To build SCIRun using the build script run the following commands in your terminal: 1) Cd into the SCIRun directory '''<pre> cd SCIRun</pre>''' 2) Execute the build script, specifying the number of cores you have in your machine to optimize build times(optional). For a single core build use: '''<pre> ./build.sh</pre>''' OR for a multi core build use -jx where x is the number of cores. For more options regarding the build script, users can type: '''<pre> ./build.sh --help</pre>''' This script will download cmake if needed, build SCIRun Thirdparty in the thirdparty.bin directory, configure SCIRun using cmake, build SCIRun, and submit results as an Experimental build to the [http://dashboards.sci.utah.edu:8081/SCIRUN_CORE/Dashboard/ SCIRun Core Dashboard] Finally build the components you need from the the new ModelCreation directory by changing into the /SCIRun/bin directory: '''<pre> cd bin</pre>''' Then use ccmake to reconfigure the build process: '''<pre> ccmake ../src</pre>''' <br> ---- ===='''KidDefib Tutorial'''==== To get a sense of how to utilize SCIRun in general please explore the SCIRun documentation. This tutorial is focused on how to utilize KidDefib and familiarity with SCIRun is assumed. [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Manual SCIRun Manual] [http://software.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Tutorial:BioPSE SCIRun FEM Tutorial] Once familiar with SCIRUn download to download the KidDefib torsos and basic modeling networks. To obtain these files download the file here. When you unpack the file you will note a directory structure which looks like: The process of modeling the fields created by ICD electrodes is broken into 3 parts: 1. Placement of up to four electrodes and a active can in a torso model using a electrode placement net. The result of this is saved out into a bundle (.bdl file) which can be subsequently imported by the next step. Link to Flash Movie of Placement 2. FEM modeling by assigning appropriate dirichlet conditions to the electrodes and orientations based on a given orientation bundle. This step calculates metrics and automatically generates useful graphs. It also generates a basic visualization showing the external voltage distributation as well as the electrode locations within the torso. The results are saved as bundles which can be subsequently visualized in more detail if desired. Link to Flash Movie of Modeling 3. The third net allows visualization of the resulting voltage gradients and interaction with the data in real time using the saved output bundles from the FEM step. Link to Flash Movie of Visualization <br> ---- ===='''Getting Help'''==== This is currently a small project to make available a resource created to determine optimal electrode position for ICD placement in children. Due to time constrainst support is limited, but feel welcome to subscribe to the SCIRun users list if you run into trouble. [http://software.sci.utah.edu/mailinglists.html Subscribe to SCIRun Users List] We plan to have several hands on tutorials in the Boston and Salt Lake City areas for those seriously interested in utilizing the software later in 2007. If you are in industry and interested in supporting development of this open-source software please contact the [http://www.sci.utah.edu/cibc/personnel/macleod.html Rob Macleod] or [http://www.sci.utah.edu/cibc/personnel/brooks.html Dana Brooks] at the CIBC and see below. <br> ---- ===='''Support KidDefib Development'''==== KidDefib is a SCIRun-based open-source project whose development depends on NIH and industrial funding for it's improvement and continuation. If you utilize KidDefib or are a industrial contact interested in funding it's improvement both on the FEM and model generation sides of the project please contact the CIBC or donate at the link below specifying KidDefib as the project you would like to support. [http://www.sci.utah.edu/support.html Donate] <br> ---- Main Page 0 1 4961 4910 2007-08-06T20:45:53Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == [[Exec:Test_Page]] 4963 4961 2007-08-06T20:49:11Z Erikj 2 /* Executive Materials */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page. [[Exec:Test_Page]] 4964 4963 2007-08-06T20:51:23Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Materials == Here is an example restricted page. [[Exec:Test_Page]] 4965 4964 2007-08-06T20:53:01Z Erikj 2 /* Materials */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Materials == Here is an example restricted page. 4966 4965 2007-08-06T20:53:39Z Erikj 2 /* Materials */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Materials == Here is an example restricted page. [[Exec:Test_Page]] 4967 4966 2007-08-06T20:54:05Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki!! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Materials == Here is an example restricted page. [[Exec:Test_Page]] 4968 4967 2007-08-06T20:55:29Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Materials == Here is an example restricted page. [[Exec:Test_Page]] 4969 4968 2007-08-06T20:56:47Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Materials == Here is an example restricted page. [[Exec:Test_Page]] 4970 4969 2007-08-06T21:21:52Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Materials == Here is an example restricted page. [[Exec:Test_Page]] 4971 4970 2007-08-06T21:22:32Z Erikj 2 /* Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Materials == Here is an example restricted page. [[Exec:Test_Page]] 4974 4971 2007-08-06T21:36:15Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] <br> == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page. [[Exec:Test_Page]] 4975 4974 2007-08-07T19:02:43Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page. [[Exec:Test_Page]] 4976 4975 2007-08-07T19:03:45Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page. [[Exec:Test_Page]] 4977 4976 2007-08-07T19:17:04Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki!! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page. [[Exec:Test_Page]] 4978 4977 2007-08-07T19:24:10Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page. [[Exec:Test_Page]] 4979 4978 2007-08-07T19:26:38Z Test 48 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki!! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page. [[Exec:Test_Page]] 4980 4979 2007-08-07T19:27:25Z Test 48 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page. [[Exec:Test_Page]] 4981 4980 2007-08-07T19:32:53Z Erikj 2 /* Executive Materials */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Here is an example restricted page.. [[Exec:Test_Page]] 4982 4981 2007-08-07T19:34:19Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> ==Seg3D== Seg3D Alpha 1.0 was released with SCIRun 3.0.0 on December 22, 2006. To be informed of updates on its status, please [http://www.sci.utah.edu/cgi-bin/CIBC_mailinglist_req.pl signup for the Seg3D email list] == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == This is an example restricted page: [[Exec:Test_Page]] 4983 4982 2007-08-08T03:54:11Z Macleod 3 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == This is an example restricted page: [[Exec:Test_Page]] 4984 4983 2007-08-08T13:54:28Z Macleod 3 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[CIBC:Exec]] 4986 4984 2007-08-08T16:55:09Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[CIBC:Exec]] [[Exec:Executive Content]] 4987 4986 2007-08-08T16:55:54Z Erikj 2 /* Executive Materials */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[CIBC:Exec]] [[Exec:CIBC Exec Area]] 4989 4987 2007-08-08T16:57:14Z Erikj 2 /* Executive Materials */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] Exec:Test Page 100 2564 4962 2007-08-06T20:46:12Z Erikj 2 wikitext text/x-wiki This is a test page. CIBC:Workshops:Workshop06 0 1021 4972 3155 2007-08-06T21:28:44Z Erikj 2 /* Participant Summaries */ wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == Contact list [[Workshop06-attendees.pdf]] ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop.. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson* (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-boverman|Greg Boverman* (NEU)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal* (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-hyde|Damon Hyde* (NEU)]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs* (UCSD)]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp* (MGH)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-svendsen|Mark Svendsen* (IUPUI)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield* (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Darren Weber* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer* (IUSB, Indiana U)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (MGH)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] 4973 4972 2007-08-06T21:30:18Z Erikj 2 /* Participant Summaries */ wikitext text/x-wiki == NCRR Workshop, April 20/21, 2006 == == Logistics== == Participants == Contact list [[Workshop06-attendees.pdf]] ===Participant Summaries=== Summaries of the background and interests of each participant in the workshop. [[CIBC:Workshops:Workshop06:summ-bahadur|Ali Bahadur (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-blackman|Barron Blackman (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-butson|Chris Butson* (Cleveland Clinic)]] [[CIBC:Workshops:Workshop06:summ-boverman|Greg Boverman* (NEU)]] [[CIBC:Workshops:Workshop06:summ-dalal|Sarang Dalal* (UCSF) ]] [[CIBC:Workshops:Workshop06:summ-hyde|Damon Hyde* (NEU)]] [[CIBC:Workshops:Workshop06:summ-jones|Bryan Jones (UofU)]] [[CIBC:Workshops:Workshop06:summ-kerckhoffs|Roy Kerckhoffs* (UCSD)]] [[CIBC:Workshops:Workshop06:summ-kim|Sohee Kim (UofU)]] [[CIBC:Workshops:Workshop06:summ-makeig|Scott Makeig (UCSD)]] [[CIBC:Workshops:Workshop06:summ-marc|Robert Marc (UofU)]] [[CIBC:Workshops:Workshop06:summ-moreno|Alonso Moreno (UofU)]] [[CIBC:Workshops:Workshop06:summ-nevell|Lisa Nevell (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-ramirez|Rey Ramirez (UCSD)]] [[CIBC:Workshops:Workshop06:summ-schindler|Dan Schindler* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-sharp|Greg Sharp* (MGH)]] [[CIBC:Workshops:Workshop06:summ-shi|Wendy Shi (UofU)]] [[CIBC:Workshops:Workshop06:summ-svendsen|Mark Svendsen* (IUPUI)]] [[CIBC:Workshops:Workshop06:summ-taylor|Darci Taylor (UofU)]] [[CIBC:Workshops:Workshop06:summ-vasquez|Sergio Vasquez (UT San Antonio)]] [[CIBC:Workshops:Workshop06:summ-warfield|Simon Warfield* (Harvard)]] [[CIBC:Workshops:Workshop06:summ-weber|Darren Weber* (UCSF)]] [[CIBC:Workshops:Workshop06:summ-wolfer|James Wolfer* (IUSB, Indiana U)]] [[CIBC:Workshops:Workshop06:summ-wolfgang|John Wolfgang (MGH)]] [[CIBC:Workshops:Workshop06:summ-zafiris|Vasilis Zafiris (UHD Houston)]] Exec:CIBC Exec Area 100 2566 4988 2007-08-08T16:56:47Z Erikj 2 wikitext text/x-wiki == CIBC Exec Area == This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. ===Review of Collaborations=== * [[Exec:CollabRev_Henriquez|Craig Henriquez]] * [[Exec:CollabRev_Triedman|John Triedman]] 4990 4988 2007-08-08T17:06:43Z Erikj 2 wikitext text/x-wiki == CIBC Exec Area == This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== * [[Exec:CollabRev_Henriquez|Craig Henriquez]] * [[Exec:CollabRev_Triedman|John Triedman]] 4991 4990 2007-08-08T17:07:31Z Erikj 2 wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== * [[Exec:CollabRev_Henriquez|Craig Henriquez]] * [[Exec:CollabRev_Triedman|John Triedman]] 4992 4991 2007-08-09T22:09:41Z Erikj 2 wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== * [[Exec:CollabRev_Henriquez|Craig Henriquez]] * [[Exec:CollabRev_Triedman|John Triedman]] [[latex2wiki_test]] 4994 4992 2007-08-09T22:12:05Z Erikj 2 wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== * [[Exec:CollabRev_Henriquez|Craig Henriquez]] * [[Exec:CollabRev_Triedman|John Triedman]] [[Exec:latex2wiki_test]] Exec:CollabRev Henriquez 100 2569 4996 2007-08-10T00:30:44Z Erikj 2 wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === ** Brief summary of goals (in simple terms):<br> Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. ** Translational potential:<br> High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. ** Current state of the science/experiments:<br> Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === ** Implementation of cellular/ionic models ** Incorporation of Cardiowave capabilities into SCIRun ** Development of high performance solvers for systems of ODEs/PDEs ** Development of meshing approaches for cell/tissue scale === Papers: === ** Progress to date:<br>2 journal papers in 2005[?, ?] 1 in 2007 [?] ** CinC paper 2006 ** Several conference talks that acknowledge our part ** In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) ** In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months ** Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> No concrete plans yet == Grants: == ** Progress to date: existing grant, NIH software due to run out in March 2008 ** In the works (include time lines): planning a new NIH grant to submit in fall of 2007. ** Planned for the future (include time lines) == Software development: == ** Description of the tasks: ### Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ### Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ### Segmentation and mesh generation tools for torso/heart models ### Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion ** Progress to date: ### Automated generation of realistic (but not based on specific data) meshes. ### Propagation software in usable state ### Running simulations for cardiac tissue to look for the influence anisotropy ### Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration ** In the works (include time lines) ### Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ### Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ### Small bug fixes (1 week) ** Planned for the future (include time lines) ### Need segmentation/meshing software (multiple years) ### We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ### We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ### We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ### Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ### Concerning tissue modeling we need to run many simulations and analyze them, no major software development. ** Potential for the future (i.e., as yet unplanned activities) ### Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == ** Other potential users, by name and by generic target group: ### <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology ** Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. ** Development cone of influence (who will beneifit from the development, including numbers): ### Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == ## This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). ## However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == ** From the CIBC: Jeroen (40%), plus some bug fixing from developers ** From the collaborator: one graduate student (50% Sarah) ** From other sources: none == Needs : == ** Urgent: *** Jeroen’s time (to do the science and evaluate the tools and write the papers) *** Need to scale vis elements down in physical space to handle there data. ** Middle term (include time lines) *** If we wanted to distribute the full code, would reqiure substantial additional resources *** Tissue modeling: need segmentation and mesh generation ** Long term (include time lines) == Organizational infrastructure : == ** How is group organized: ###. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. ** How does interaction happen, e.g., meetings, how often, who involved ### Jeroen has semi-regular T-con meetings with Craig ### Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == ** Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 4997 4996 2007-08-10T00:31:14Z Erikj 2 /* Scientific goals and state of the collaborative research: */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === * Brief summary of goals (in simple terms):<br> Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. * Translational potential:<br> High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. * Current state of the science/experiments:<br> Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === ** Implementation of cellular/ionic models ** Incorporation of Cardiowave capabilities into SCIRun ** Development of high performance solvers for systems of ODEs/PDEs ** Development of meshing approaches for cell/tissue scale === Papers: === ** Progress to date:<br>2 journal papers in 2005[?, ?] 1 in 2007 [?] ** CinC paper 2006 ** Several conference talks that acknowledge our part ** In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) ** In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months ** Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> No concrete plans yet == Grants: == ** Progress to date: existing grant, NIH software due to run out in March 2008 ** In the works (include time lines): planning a new NIH grant to submit in fall of 2007. ** Planned for the future (include time lines) == Software development: == ** Description of the tasks: ### Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ### Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ### Segmentation and mesh generation tools for torso/heart models ### Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion ** Progress to date: ### Automated generation of realistic (but not based on specific data) meshes. ### Propagation software in usable state ### Running simulations for cardiac tissue to look for the influence anisotropy ### Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration ** In the works (include time lines) ### Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ### Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ### Small bug fixes (1 week) ** Planned for the future (include time lines) ### Need segmentation/meshing software (multiple years) ### We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ### We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ### We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ### Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ### Concerning tissue modeling we need to run many simulations and analyze them, no major software development. ** Potential for the future (i.e., as yet unplanned activities) ### Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == ** Other potential users, by name and by generic target group: ### <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology ** Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. ** Development cone of influence (who will beneifit from the development, including numbers): ### Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == ## This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). ## However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == ** From the CIBC: Jeroen (40%), plus some bug fixing from developers ** From the collaborator: one graduate student (50% Sarah) ** From other sources: none == Needs : == ** Urgent: *** Jeroen’s time (to do the science and evaluate the tools and write the papers) *** Need to scale vis elements down in physical space to handle there data. ** Middle term (include time lines) *** If we wanted to distribute the full code, would reqiure substantial additional resources *** Tissue modeling: need segmentation and mesh generation ** Long term (include time lines) == Organizational infrastructure : == ** How is group organized: ###. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. ** How does interaction happen, e.g., meetings, how often, who involved ### Jeroen has semi-regular T-con meetings with Craig ### Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == ** Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 4998 4997 2007-08-10T00:32:28Z Erikj 2 /* Scientific goals and state of the collaborative research: */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === ** Implementation of cellular/ionic models ** Incorporation of Cardiowave capabilities into SCIRun ** Development of high performance solvers for systems of ODEs/PDEs ** Development of meshing approaches for cell/tissue scale === Papers: === ** Progress to date:<br>2 journal papers in 2005[?, ?] 1 in 2007 [?] ** CinC paper 2006 ** Several conference talks that acknowledge our part ** In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) ** In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months ** Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> No concrete plans yet == Grants: == ** Progress to date: existing grant, NIH software due to run out in March 2008 ** In the works (include time lines): planning a new NIH grant to submit in fall of 2007. ** Planned for the future (include time lines) == Software development: == ** Description of the tasks: ### Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ### Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ### Segmentation and mesh generation tools for torso/heart models ### Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion ** Progress to date: ### Automated generation of realistic (but not based on specific data) meshes. ### Propagation software in usable state ### Running simulations for cardiac tissue to look for the influence anisotropy ### Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration ** In the works (include time lines) ### Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ### Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ### Small bug fixes (1 week) ** Planned for the future (include time lines) ### Need segmentation/meshing software (multiple years) ### We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ### We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ### We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ### Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ### Concerning tissue modeling we need to run many simulations and analyze them, no major software development. ** Potential for the future (i.e., as yet unplanned activities) ### Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == ** Other potential users, by name and by generic target group: ### <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology ** Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. ** Development cone of influence (who will beneifit from the development, including numbers): ### Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == ## This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). ## However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == ** From the CIBC: Jeroen (40%), plus some bug fixing from developers ** From the collaborator: one graduate student (50% Sarah) ** From other sources: none == Needs : == ** Urgent: *** Jeroen’s time (to do the science and evaluate the tools and write the papers) *** Need to scale vis elements down in physical space to handle there data. ** Middle term (include time lines) *** If we wanted to distribute the full code, would reqiure substantial additional resources *** Tissue modeling: need segmentation and mesh generation ** Long term (include time lines) == Organizational infrastructure : == ** How is group organized: ###. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. ** How does interaction happen, e.g., meetings, how often, who involved ### Jeroen has semi-regular T-con meetings with Craig ### Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == ** Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 4999 4998 2007-08-10T00:36:57Z Erikj 2 wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> :2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> :No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ### Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5000 4999 2007-08-10T00:37:16Z Erikj 2 /* Papers: */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ### Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5001 5000 2007-08-10T00:38:55Z Erikj 2 /* Software development: */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5002 5001 2007-08-10T00:39:25Z Erikj 2 /* Software development: */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5003 5002 2007-08-10T00:40:15Z Erikj 2 /* Software development: */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5004 5003 2007-08-10T00:40:50Z Erikj 2 /* Software development: */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. Exec:CollabRev Henriquez 100 2569 5005 5004 2007-08-10T00:42:36Z Erikj 2 /* Software development: */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ### Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5006 5005 2007-08-10T00:43:28Z Erikj 2 /* Extent of the ”cone of influence” : */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ::# Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5007 5006 2007-08-10T00:43:49Z Erikj 2 /* Extent of the ”cone of influence” : */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ::# Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5008 5007 2007-08-10T00:44:11Z Erikj 2 /* Extent of the ”cone of influence” : */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ::# Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5009 5008 2007-08-10T00:44:29Z Erikj 2 /* Extent of the INTERNAL ”cone of influence” : */ wikitext text/x-wiki Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ::# Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5011 5009 2007-08-10T21:48:49Z Erikj 2 qu wikitext text/x-wiki == Henriquez Collaboration == Rob MacLeod August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ::# Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. 5012 5011 2007-08-10T21:49:31Z Erikj 2 /* Henriquez Collaboration */ wikitext text/x-wiki == Henriquez Collaboration == Rob MacLeod - August 8, 2007 === Scientific goals and state of the collaborative research: === :* Brief summary of goals (in simple terms):<br> :Simulate electrophysiology of cardiac tissue at the meso scale in order to understand the mechanics of phenomena like propagation, arrhythmias, ischemia, and stimulation. :* Translational potential:<br> :High: Could be significant if simulations can go to the whole heart as it would allow direct simulation of pathologies. :* Current state of the science/experiments:<br> :Spatial scale still fairly small, millimeter to centimeter scale models. Current collaboration is working out models to simulate at micrometers scale. === Associated technical goals that this collaboration will realize: === :* Implementation of cellular/ionic models :* Incorporation of Cardiowave capabilities into SCIRun :* Development of high performance solvers for systems of ODEs/PDEs :* Development of meshing approaches for cell/tissue scale === Papers: === :* Progress to date:<br> ::2 journal papers in 2005[?, ?] 1 in 2007 [?] :* CinC paper 2006 :* Several conference talks that acknowledge our part :* In works (in paper, mainly drafted by Jeroen, being finished by students at Duke (2 months)) :* In the works (include time lines): 2 manuscripts partially written, should be out in next 4 months :* Planned for the future (include time lines): With tissue scale modeling working we can do various case studies<br> ::No concrete plans yet == Grants: == :* Progress to date: existing grant, NIH software due to run out in March 2008 :* In the works (include time lines): planning a new NIH grant to submit in fall of 2007. :* Planned for the future (include time lines) == Software development: == :* Description of the tasks: ::# Creation of integrated environment for large scale modeling and simulation of spread of excitation in cardiac tissue; they currently use Cardiowave and are interested in either intrgration with SCIRun or moving fully to SCIRun for simulation and visualization. ::# Segmentation and mesh generation tools for creating models of multiple cells from confocal microscopy ::# Segmentation and mesh generation tools for torso/heart models ::# Efficient solvers for large systems of ODEs and PDEs; part of Cardiowave/SCIRun discussion :* Progress to date: ::# Automated generation of realistic (but not based on specific data) meshes. ::# Propagation software in usable state ::# Running simulations for cardiac tissue to look for the influence anisotropy ::# Basic interface for running tissue type simulations, but currently specific to that scale and works only with one CardioWave configuration :* In the works (include time lines) ::# Fixing SCIRun so it will visualize small data sets and will not do random epsilon choices (1 week) ::# Nothing planned after that – we are running simulations and cases and will focus on producing papers. Work on papers/simulations etc (4 months) ::# Small bug fixes (1 week) :* Planned for the future (include time lines) ::# Need segmentation/meshing software (multiple years) ::# We need a decision on what direction will be: tissue scale OR whole heart scale. Mesh types, Segmentation, parameters one wants to change in simulations etc are different for both cases, making it general will create an awfully complicated interface. ::# We need a decision on what software strategy for simulations: CardioWave (inflexible, need to code new interface for almost every type of simulation) OR SCIRun (Non-existent currently, needs to be developed) ::# We need a decision on which kinds of architectures to support: Clusters/MPI OR Shared-memory/Multi-Core machines. Our current MPI implementation has so much communication overhead that in practice we are running it on multi-core machines, hence why not go all the way? ::# Research questions we want to answer for simulations: do we want afib simulations (adaptive meshing would be nice in this case), OR do we want to look at propagation and local potential gradients (adaptive timestepping is better for this), etc. ::# Concerning tissue modeling we need to run many simulations and analyze them, no major software development. :* Potential for the future (i.e., as yet unplanned activities) ::# Merging of Cardiowave with SCIRun, which would greatly expand both our reach and the impact of Cardiowave. == Extent of the ”cone of influence” : == :* Other potential users, by name and by generic target group: ::# <math>\textstyle \le</math> 100 middle and some upper tier investigators in cardiac electrophysiology :* Science cone of influence (who will benefit from the science): ::# Substantial part of EP community, depending on eventual scope of the results. :* Development cone of influence (who will beneifit from the development, including numbers): ::# Most of the software pieces developed for this project were reused in Triedman collaboration (1 user). Completely different simulations that still share a lot of code base (e.g., MATLAB code) == Extent of the INTERNAL ”cone of influence” : == :# This project drove most of the cleanup of SCIRun so it does not hang all the time (most SCIRun users). :# However without distribution/software management model for the CardioWave software the simulation components cannot be used elsewhere except SCI/Duke. == Resources available : == :* From the CIBC: Jeroen (40%), plus some bug fixing from developers :* From the collaborator: one graduate student (50% Sarah) :* From other sources: none == Needs : == :* Urgent: ::* Jeroen’s time (to do the science and evaluate the tools and write the papers) ::* Need to scale vis elements down in physical space to handle there data. :* Middle term (include time lines) ::* If we wanted to distribute the full code, would reqiure substantial additional resources ::* Tissue modeling: need segmentation and mesh generation :* Long term (include time lines) == Organizational infrastructure : == :* How is group organized: ::#. Jeroen is main activist at NCRR end with regular reports to Rob regarding progress. :* How does interaction happen, e.g., meetings, how often, who involved ::# Jeroen has semi-regular T-con meetings with Craig ::# Jeroen visits Duke 3-4 times per year to interact directly == Overlap with Center (or Center members) interests : == :* Jeroen, Rob, and Dana all have considerable interest in this area of simulation. Rob especially is interested in the context of ischemia and simulating resulting changes in propagation. Exec:CIBC Exec Area 100 2566 5010 4994 2007-08-10T21:47:12Z Erikj 2 wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== * [[Exec:CollabRev_Henriquez|Craig Henriquez]] * [[Exec:CollabRev_Triedman|John Triedman]] 5014 5010 2007-08-13T13:07:48Z Macleod 3 wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[collab-henriquez-new.pdf|Henriquez in pdf]] * [[Exec:CollabRev_Henriquez|Craig Henriquez]] * [[Exec:CollabRev_Triedman|John Triedman]] 5015 5014 2007-08-13T13:11:55Z Macleod 3 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] * [[Exec:CollabRev_Henriquez|Craig Henriquez]] * [[Exec:CollabRev_Triedman|John Triedman]] 5016 5015 2007-08-13T13:16:11Z Macleod 3 wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolly| Triedman-Jolly quez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary 5017 5016 2007-08-13T13:17:07Z Macleod 3 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolly|Triedman-Jolly in pdf]] and in [[Media:collab-triedman-jolly.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary 5019 5017 2007-08-13T13:29:52Z Macleod 3 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-makeig-worrell-warfield.pdf|Makeig/Worrell and Warfield in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolly|Triedman-Jolly in pdf]] and in [[Media:collab-triedman-jolly.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary 5021 5019 2007-08-13T13:31:50Z Macleod 3 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-capecchi-july07.pdf|Capecchi in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-makeig-worrell-warfield.pdf|Makeig/Worrell and Warfield in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolly|Triedman-Jolly in pdf]] and in [[Media:collab-triedman-jolly.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary 5023 5021 2007-08-13T13:35:20Z Macleod 3 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-capecchi-july07.pdf|Capecchi in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-makeig-worrell-warfield.pdf|Makeig/Worrell and Warfield in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolley|Triedman-Jolley in pdf]] and in [[Media:collab-triedman-jolley.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary 5024 5023 2007-08-13T13:38:11Z Macleod 3 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-capecchi-july07.pdf|Capecchi in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-makeig-worrell-warfield.pdf|Makeig/Worrell and Warfield in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:Collab-triedman-jolley|Triedman-Jolley in pdf]] and in [[Media:collab-triedman-jolley.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary 5025 5024 2007-08-13T13:39:00Z Macleod 3 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-capecchi-july07.pdf|Capecchi in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-makeig-worrell-warfield.pdf|Makeig/Worrell and Warfield in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolley.pdf|Triedman-Jolley in pdf]] and in [[Media:collab-triedman-jolley.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary 5026 5025 2007-08-19T06:17:09Z Dmw 6 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-capecchi-july07.pdf|Capecchi in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-makeig-worrell-warfield.pdf|Makeig/Worrell and Warfield in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolley.pdf|Triedman-Jolley in pdf]] and in [[Media:collab-triedman-jolley.tex|LaTeX source]] #[[Media:collab-keller.pdf|Keller in pdf]] and in [[Media:collab-keller.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary File:Collab-henriquez-new.pdf 6 2570 5013 2007-08-13T12:53:07Z Macleod 3 Review of collaboration for CIBC wikitext text/x-wiki Review of collaboration for CIBC File:Collab-triedman-jolley.pdf 6 2571 5018 2007-08-13T13:18:10Z Macleod 3 Triedman Jolly collaboration wikitext text/x-wiki Triedman Jolly collaboration File:Collab-capecchi-july07.pdf 6 2572 5020 2007-08-13T13:31:11Z Macleod 3 wikitext text/x-wiki File:Collab-makeig-worrell-warfield.pdf 6 2573 5022 2007-08-13T13:32:43Z Macleod 3 wikitext text/x-wiki File:Collab-keller.pdf 6 2574 5027 2007-08-19T06:17:20Z Dmw 6 wikitext text/x-wiki File:Collab-keller.tex 6 2575 5028 2007-08-19T06:18:06Z Dmw 6 wikitext text/x-wiki CIBC:EABMeeting2007:Schedule 0 2576 5029 2007-09-06T00:32:03Z Dmw 6 wikitext text/x-wiki Thursday night - Dinner at Rob's house Friday: Pick up at Hotel Monaco Continential Breakfast Introduction - Chris Ellisman and Capecchi -- Ross Dave: Seg3D demo Josh to talk about shape analysis, results and example of use of Seg3D Keller -- Dave Makeig / Worrell / Warfield -- Chris Seok to talk about...? Henriquez and Treidman / Jolley -- Rob Jeroen BioPSE -- Dave Image and Geometry Processing -- Ross Jeroen(?) to talk about current state meshing and immediate plans Miriah to talk about meshing with refs to Treidman and NCMIR Mathematical Modeling and Simulation - Rob (Anyone to talk here?) Visualization - Chris (Anyone to talk here?) Future - Chris leads discussion Feedback from EAB 5030 5029 2007-09-06T00:32:24Z Dmw 6 wikitext text/x-wiki Thursday night - Dinner at Rob's house Friday: Pick up at Hotel Monaco Continential Breakfast Introduction - Chris Ellisman and Capecchi -- Ross Dave: Seg3D demo Josh to talk about shape analysis, results and example of use of Seg3D Keller -- Dave Makeig / Worrell / Warfield -- Chris Seok to talk about...? Henriquez and Treidman / Jolley -- Rob Jeroen BioPSE -- Dave Image and Geometry Processing -- Ross Jeroen(?) to talk about current state meshing and immediate plans Miriah to talk about meshing with refs to Treidman and NCMIR Mathematical Modeling and Simulation - Rob (Anyone to talk here?) Visualization - Chris (Anyone to talk here?) Future - Chris leads discussion Feedback from EAB 5031 5030 2007-09-06T00:32:49Z Dmw 6 wikitext text/x-wiki Thursday night - Dinner at Rob's house Friday: Pick up at Hotel Monaco Continential Breakfast Introduction - Chris Ellisman and Capecchi -- Ross * Dave: Seg3D demo * Josh to talk about shape analysis, results and example of use of Seg3D Keller -- Dave Makeig / Worrell / Warfield -- Chris * Seok to talk about...? Henriquez and Treidman / Jolley -- Rob * Jeroen BioPSE -- Dave Image and Geometry Processing -- Ross * Jeroen(?) to talk about current state meshing and immediate plans * Miriah to talk about meshing with refs to Treidman and NCMIR Mathematical Modeling and Simulation - Rob * (Anyone to talk here?) Visualization - Chris * (Anyone to talk here?) Future - Chris leads discussion Feedback from EAB 5032 5031 2007-09-06T00:39:53Z Dmw 6 wikitext text/x-wiki == EAB 2007 Meeting Schedule: September 20 and 21, 2007 == == Thursday night == === Dinner at Rob's house === == Friday == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris === Ellisman and Capecchi === Ross: Overview Dave: Seg3D demo Josh: Shape analysis, results and example of use of Seg3D === Keller === Dave: Overview === Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Lunch === === BioPSE === Dave: Overview == Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5033 5032 2007-09-06T00:41:04Z Dmw 6 [[CIBC:EABMeeting2007:schedule]] moved to [[CIBC:EABMeeting2007:Schedule]] wikitext text/x-wiki == EAB 2007 Meeting Schedule: September 20 and 21, 2007 == == Thursday night == === Dinner at Rob's house === == Friday == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris === Ellisman and Capecchi === Ross: Overview Dave: Seg3D demo Josh: Shape analysis, results and example of use of Seg3D === Keller === Dave: Overview === Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Lunch === === BioPSE === Dave: Overview == Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5035 5033 2007-09-06T00:41:59Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night == === Dinner at Rob's house === == Friday == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris === Ellisman and Capecchi === Ross: Overview Dave: Seg3D demo Josh: Shape analysis, results and example of use of Seg3D === Keller === Dave: Overview === Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Lunch === === BioPSE === Dave: Overview === Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5036 5035 2007-09-06T00:43:23Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (time?) (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris === Ellisman and Capecchi === Ross: Overview Dave: Seg3D demo Josh: Shape analysis, results and example of use of Seg3D === Keller === Dave: Overview === Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Lunch === === BioPSE === Dave: Overview === Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5037 5036 2007-09-06T00:44:01Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (time?) (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Ellisman and Capecchi === Ross: Overview Dave: Seg3D demo Josh: Shape analysis, results and example of use of Seg3D === Keller === Dave: Overview === Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Lunch === === BioPSE === Dave: Overview === Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5038 5037 2007-09-06T01:26:55Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (time?) (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Dave: Seg3D demo Josh: Shape analysis, results and example of use of Seg3D === Collab: Keller === Dave: Overview === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5043 5038 2007-09-12T21:56:47Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (time?) (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Josh: Seg3D demo Josh: Shape analysis, results and example of use of Seg3D === Collab: Keller === Dave: Overview === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5044 5043 2007-09-12T22:01:07Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (time?) (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Josh: Shape analysis, results and example of use of Seg3D === Collab: Keller === Dave: Overview === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5045 5044 2007-09-12T22:02:21Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (time?) (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5046 5045 2007-09-14T14:48:52Z Dmw 6 /* Thursday night: Dinner at Rob's house (time?) (link map) */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house: 6:30p (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5047 5046 2007-09-14T14:50:45Z Dmw 6 /* Thursday night: Dinner at Rob's house: 6:30p (link map) */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30p (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5048 5047 2007-09-14T14:56:28Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30p (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Core: Visualization === Steve: Service, Dissemination, Training, and Administration === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5049 5048 2007-09-14T15:06:42Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30p (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco === === Continential Breakfast === === Introduction === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5050 5049 2007-09-14T15:24:10Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5051 5050 2007-09-14T15:30:14Z Dmw 6 /* Collab: Ellisman and Capecchi */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview JR: Demo Seg3D Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: ??? === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5052 5051 2007-09-14T15:32:10Z Dmw 6 /* Collab: Makeig / Worrell / Warfield */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview JR: Demo Seg3D Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5053 5052 2007-09-14T15:33:36Z Dmw 6 /* Collab: Ellisman and Capecchi */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5054 5053 2007-09-14T15:34:59Z Dmw 6 /* Collab: Henriquez and Treidman / Jolley */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === CIBC:EABMeeting2007:schedule 0 2577 5034 2007-09-06T00:41:04Z Dmw 6 [[CIBC:EABMeeting2007:schedule]] moved to [[CIBC:EABMeeting2007:Schedule]] wikitext text/x-wiki #REDIRECT [[CIBC:EABMeeting2007:Schedule]] Help:Contents 12 995 5039 3133 2007-09-06T01:33:51Z Erikj 2 wikitext text/x-wiki == Editing and Formatting == The wiki understands many basic HTML tags, but for most things it is best to use wiki text. Here are some helpful guides. * [http://www.mediawiki.org/wiki/Help:Formatting Help:Formatting] * [http://meta.wikimedia.org/wiki/Help:Editing Help:Editing] * [http://www.mediawiki.org/wiki/Help:Images Help:Images] * [http://meta.wikimedia.org/wiki/Help:Images_and_other_uploaded_files Help:Images and other uploaded files.] * [http://www.mediawiki.org/wiki/Help:Links Help:Links] * [http://www.mediawiki.org/wiki/Help:Tables Help:Tables] - Note HTML tables work also. 5040 5039 2007-09-06T01:37:44Z Erikj 2 wikitext text/x-wiki == Editing and Formatting == The wiki understands many basic HTML tags, but for most things it is best to use wiki text. Here are some helpful guides. * [http://www.mediawiki.org/wiki/Help:Formatting Help:Formatting] * [http://meta.wikimedia.org/wiki/Help:Editing Help:Editing] * [http://www.mediawiki.org/wiki/Help:Images Help:Images] * [http://meta.wikimedia.org/wiki/Help:Images_and_other_uploaded_files Help:Images and other uploaded files.] * [http://www.mediawiki.org/wiki/Help:Links Help:Links] * [http://www.mediawiki.org/wiki/Help:Tables Help:Tables] - Note HTML tables work also. == Secure Pages == Pages can be restricted so they can be viewed only by logged in users who are members of a specific group by naming them appropriately. Currently, there are two available restricted namespaces, <b>"Exec:"</b> for members of the "exec" group and <b>"Collab:"</b> for members of the "collab" group. To create a restricted page, simply title the page starting with the namespace, i.e. "Collab:". This would place it in the "Collab:" namespace. Pages can be created by first making a link to a nonexistent page. Then click that link and you will be taken to an editing page where you can add your content. If you need to be added to a restricted group, please email webmaster@sci.utah.edu. Be aware that the wiki can only provide a weak level of security. Consider it a "nothing to see here, move along" not a guarantee of security. Please read this [[Notice_on_Wiki_Security]]. 5042 5040 2007-09-06T01:48:45Z Erikj 2 /* Secure Pages */ wikitext text/x-wiki == Editing and Formatting == The wiki understands many basic HTML tags, but for most things it is best to use wiki text. Here are some helpful guides. * [http://www.mediawiki.org/wiki/Help:Formatting Help:Formatting] * [http://meta.wikimedia.org/wiki/Help:Editing Help:Editing] * [http://www.mediawiki.org/wiki/Help:Images Help:Images] * [http://meta.wikimedia.org/wiki/Help:Images_and_other_uploaded_files Help:Images and other uploaded files.] * [http://www.mediawiki.org/wiki/Help:Links Help:Links] * [http://www.mediawiki.org/wiki/Help:Tables Help:Tables] - Note HTML tables work also. == Secure Pages == Pages can be restricted so they can be viewed only by logged in users who are members of a specific group by naming them appropriately. Currently, there are two available restricted namespaces, <b>"Exec:"</b> for members of the "exec" group and <b>"Collab:"</b> for members of the "collab" group. To create a restricted page, simply title the page starting with the namespace, i.e. "Collab:". This would place it in the "Collab:" namespace. Pages can be created by first making a link to a nonexistent page. Then click that link and you will be taken to an editing page where you can add your content. If you need access to a restricted group, please email the webmaster (webmaster[at]sci.utah.edu). Be aware that the wiki can only provide a weak level of security. Consider it a "nothing to see here, move along" not a guarantee of security. Please read this [[Notice_on_Wiki_Security]]. Notice on Wiki Security 0 2578 5041 2007-09-06T01:46:28Z Erikj 2 wikitext text/x-wiki Wikis in general were designed as public forums without access restriction in mind. This wiki has been modified and extended to achieve some amount of access control, however there are [http://www.mediawiki.org/wiki/Security_issues_with_authorization_extensions inherent limitations] to the level of security a wiki can provide. It is important to keep this in mind when using this wiki. Please follow these guidelines when using this wiki: * <b>Do not use the same password on any wiki that is also used for other more sensitive environments.</b> If the password from a wiki were sniffed out or hacked, those other systems could also be compromised. If you need to change your password, you can do it yourself by going to Special Pages -> [[Special:Preferences|Preferences]]. * <b>Do not place highly sensitive information, personal information, or upload sensitive files onto the wiki.</b> This wiki has been modified to allow restriction of some pages to authorized users, however, there are [http://www.mediawiki.org/wiki/Security_issues_with_authorization_extensions known weaknesses] so it should be seen as a "nothing to see here, move along", rather than a guarantee of secrecy. * <b>Special "Exec:" and "Collab:" namespaces have been created for CIBC executive and collaborators only pages.</b> This means that any pages named beginning with "Exec:" or "Collab:" will require the user be a member of the "exec" or "collab" user group respectively in order to view or edit it. Please contact the webmaster (webmaster[at]sci.utah.edu) if you need to be made a member of this group. * <b>Bear in mind that uploaded files could be accessed by anyone visiting the wiki.</b> This wiki has been modified to hide the Special pages that list the uploaded files from non-logged-in users, however, the files themselves are not directly restricted from view and in theory could be seen by any visitor even if the file is not linked on a public page. * This wiki has been modified so that users cannot create their own accounts and a login is required to edit pages. Users must request an account from the webmaster. This is meant to prevent bots from automatically creating accounts and posting wiki spam, however it does not prevent malicious people from requesting and receiving accounts. We hope that will not be a problem, however, <b>please keep an eye out for malicious postings and report them to webmaster[at]sci.utah.edu.</b> Thank you, and happy wikiing! Erik Jorgensen<br> SCI Webmaster CIBC:EABMeeting2007:Schedule 0 2576 5055 5054 2007-09-14T15:59:30Z Dmw 6 /* Lunch */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch (11:45am-12:45pm) === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session === === Feedback from EAB === 5056 5055 2007-09-14T15:59:55Z Dmw 6 /* EAB Executive Session */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch (11:45am-12:45pm) === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Miriah: meshing with refs to Treidman and NCMIR Jeroen: Current state meshing and immediate plans === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session (3:30pm) === === Feedback from EAB === 5057 5056 2007-09-14T16:03:27Z Dmw 6 /* Core: Image and Geometry Processing */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch (11:45am-12:45pm) === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Jeroen: Current state meshing and immediate plans Miriah: meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session (3:30pm) === === Feedback from EAB === 5058 5057 2007-09-14T16:04:00Z Dmw 6 /* Core: Image and Geometry Processing */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch (11:45am-12:45pm) === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation === Rob: Overview (Any students/ staff to present here?) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session (3:30pm) === === Feedback from EAB === 5059 5058 2007-09-14T16:05:37Z Dmw 6 /* Core: Mathematical Modeling and Simulation */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch (11:45am-12:45pm) === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Core: Visualization === Chris: Overview (Any students / staff to present here?) === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session (3:30pm) === === Feedback from EAB === 5060 5059 2007-09-14T16:07:23Z Dmw 6 /* Core: Visualization */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch (11:45am-12:45pm) === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Core: Visualization === Chris: Overview === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads discussion === EAB Executive Session (3:30pm) === === Feedback from EAB === 5061 5060 2007-09-14T16:07:57Z Dmw 6 /* Future */ wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast 7:45am === === Introduction 8:00am === Chris: Overview === Collab: Ellisman and Capecchi === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Collab: Makeig / Worrell / Warfield === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === Proposed Collab Promotion: Keller === Dave: Overview === Lunch (11:45am-12:45pm) === === Core: BioPSE === Dave: Overview === Core: Image and Geometry Processing === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Core: Visualization === Chris: Overview === Serice, Dissemintation, Training, and Administration === Steve: Overview === Future === Chris: Leads renewal strategy discussion === EAB Executive Session (3:30pm) === === Feedback from EAB === 5062 5061 2007-09-17T05:27:07Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast: 7:45am === === Introduction: 8:00am === Chris: Overview === Collab: Ellisman and Capecchi: 8:30am === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Proposed Collab Promotion: Keller: 9:15am === Dave: Overview === Coffee Break: 9:40am === === Collab: Makeig / Worrell / Warfield: 10:00am === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley: 10:35am === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === WEB Tour: 11:30am === === Lunch (11:45am-12:45pm) === === Core: BioPSE: 12:45pm === Dave: Overview === Core: Image and Geometry Processing: 1:05pm === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation: 1:45pm === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Coffee Break: 2:10pm === === Core: Visualization: 2:30pm === Chris: Overview === Serice, Dissemintation, Training, and Administration: 3:00pm === Steve: Overview === Future: 3:30pm === Chris: Leads renewal strategy discussion === EAB Executive Session: 4:00pm === === Feedback from EAB: 5:00pm === 5063 5062 2007-09-17T05:29:29Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast: 7:45am === === Introduction: 8:00am === Chris: Overview === Collab: Ellisman and Capecchi: 8:30am === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Proposed Collab Promotion: Keller: 9:15am === Dave: Overview === Coffee Break: 9:40am === === Collab: Makeig / Worrell / Warfield: 10:00am === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley: 10:35am === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === WEB Tour: 11:30am === === Lunch (11:45am-12:45pm) === === Core: BioPSE: 12:45pm === Dave: Overview === Core: Image and Geometry Processing: 1:05pm === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation: 1:45pm === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Coffee Break: 2:10pm === === Core: Visualization: 2:30pm === Chris: Overview === Serice, Dissemintation, Training, and Administration: 3:00pm === Steve: Overview === Future: 3:30pm === Chris: Leads renewal strategy discussion === EAB Executive Session: 4:00pm === === Meeting with Center Admin: 5:00pm === === Dinner (Chris will take people out): 6:15pm == 5064 5063 2007-09-17T05:34:56Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === === Continential Breakfast: 7:45am [15 min] === === Introduction: 8:00am [30 min] === Chris: Overview === Collab: Ellisman and Capecchi: 8:30am [45 min] === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Proposed Collab Promotion: Keller: 9:15am [25 min] === Dave: Overview === Coffee Break: 9:40am [20 min] === === Collab: Makeig / Worrell / Warfield: 10:00am [35 min] === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley: 10:35am [45 min] === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === WEB Tour: 11:20am [25 min] === === Lunch: 11:45pm [60 min] === === Core: BioPSE: 12:45pm [20 min] === Dave: Overview === Core: Image and Geometry Processing: 1:05pm [40 min] === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation: 1:45pm [25 min] === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Coffee Break: 2:10pm [20 min] === === Core: Visualization: 2:30pm [30 min] === Chris: Overview === Serice, Dissemintation, Training, and Administration: 3:00pm [30 min] === Steve: Overview === Future: 3:30pm [30 min] === Chris: Leads renewal strategy discussion === EAB Executive Session: 4:00pm [60 min] === === Meeting with Center Admin: 5:00pm [60 min] === === Dinner (Chris will take people out): 6:15pm === 5065 5064 2007-09-17T06:04:54Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == Chris, Ross, and Dave will transport guests to and from Rob's == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === Chris, Ross, and Dave will pick up Steve, Rob, Chems, Nick, and Deb will make sure everything's setup in the Conference Room === Continential Breakfast: 7:45am [15 min] === === Introduction: 8:00am [30 min] === Chris: Overview === Collab: Ellisman and Capecchi: 8:30am [45 min] === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Proposed Collab Promotion: Keller: 9:15am [25 min] === Dave: Overview === Coffee Break: 9:40am [20 min] === === Collab: Makeig / Worrell / Warfield: 10:00am [35 min] === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley: 10:35am [45 min] === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === WEB Tour: 11:20am [25 min] === === Lunch: 11:45pm [60 min] === === Core: BioPSE: 12:45pm [20 min] === Dave: Overview === Core: Image and Geometry Processing: 1:05pm [40 min] === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation: 1:45pm [25 min] === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Coffee Break: 2:10pm [20 min] === === Core: Visualization: 2:30pm [30 min] === Chris: Overview === Serice, Dissemintation, Training, and Administration: 3:00pm [30 min] === Steve: Overview === Future: 3:30pm [30 min] === Chris: Leads renewal strategy discussion === EAB Executive Session: 4:00pm [60 min] === === Meeting with Center Admin: 5:00pm [60 min] === === Dinner (Chris will take people out): 6:15pm === 5066 5065 2007-09-17T06:05:32Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == Chris, Ross, and Dave will transport guests to and from Rob's == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === Chris, Ross, and Dave will pick up guests at hotel lobby Steve, Rob, Chems, Nick, and Deb will make sure everything's setup in the Conference Room === Continential Breakfast: 7:45am [15 min] === === Introduction: 8:00am [30 min] === Chris: Overview === Collab: Ellisman and Capecchi: 8:30am [45 min] === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Proposed Collab Promotion: Keller: 9:15am [25 min] === Dave: Overview === Coffee Break: 9:40am [20 min] === === Collab: Makeig / Worrell / Warfield: 10:00am [35 min] === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley: 10:35am [45 min] === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === WEB Tour: 11:20am [25 min] === === Lunch: 11:45pm [60 min] === === Core: BioPSE: 12:45pm [20 min] === Dave: Overview === Core: Image and Geometry Processing: 1:05pm [40 min] === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation: 1:45pm [25 min] === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Coffee Break: 2:10pm [20 min] === === Core: Visualization: 2:30pm [30 min] === Chris: Overview === Serice, Dissemintation, Training, and Administration: 3:00pm [30 min] === Steve: Overview === Future: 3:30pm [30 min] === Chris: Leads renewal strategy discussion === EAB Executive Session: 4:00pm [60 min] === === Meeting with Center Admin: 5:00pm [60 min] === === Dinner (Chris will take people out): 6:15pm === 5067 5066 2007-09-17T14:36:26Z Dmw 6 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house (Cafe Med): 6:30pm (link map) == Chris, Ross, and Dave will transport guests to and from Rob's Guests will be picked up at the Hotel Monaco lobby at 6:00pm == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === Chris, Ross, and Dave will pick up guests at hotel lobby Steve, Rob, Chems, Nick, and Deb will make sure everything's setup in the Conference Room === Continential Breakfast: 7:45am [15 min] === === Introduction: 8:00am [30 min] === Chris: Overview === Collab: Ellisman and Capecchi: 8:30am [45 min] === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Proposed Collab Promotion: Keller: 9:15am [25 min] === Dave: Overview === Coffee Break: 9:40am [20 min] === === Collab: Makeig / Worrell / Warfield: 10:00am [35 min] === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley: 10:35am [45 min] === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === WEB Tour: 11:20am [25 min] === === Lunch: 11:45pm [60 min] === === Core: BioPSE: 12:45pm [20 min] === Dave: Overview === Core: Image and Geometry Processing: 1:05pm [40 min] === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Core: Mathematical Modeling and Simulation: 1:45pm [25 min] === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Coffee Break: 2:10pm [20 min] === === Core: Visualization: 2:30pm [30 min] === Chris: Overview === Serice, Dissemintation, Training, and Administration: 3:00pm [30 min] === Steve: Overview === Future: 3:30pm [30 min] === Chris: Leads renewal strategy discussion === EAB Executive Session: 4:00pm [60 min] === === Meeting with Center Admin: 5:00pm [60 min] === === Dinner (Chris will take people out): 6:15pm === 5068 5067 2007-09-18T13:20:52Z Macleod 3 wikitext text/x-wiki = EAB 2007 Meeting Schedule: September 20 and 21, 2007 = == Thursday night: Dinner at Rob's house 6:30pm == [http://www.cvrti.utah.edu/~macleod/images/map-to-house.png Map to Rob's house] Chris, Ross, and Dave will transport guests to and from Rob's Guests will be picked up at the Hotel Monaco lobby at 6:00pm == Friday: Warnock Engineering Building (WEB) == === Pick up at Hotel Monaco: 7:30am === Chris, Ross, and Dave will pick up guests at hotel lobby Steve, Rob, Chems, Nick, and Deb will make sure everything's setup in the Conference Room === Continential Breakfast: 7:45am [15 min] === === Introduction: 8:00am [30 min] === Chris: Overview === Collab: Ellisman and Capecchi: 8:30am [45 min] === Ross: Overview of Ellisman Collab JR: Demo Seg3D Ross: Overview of Capecchi Collab Josh: Shape analysis, results and example of use of Seg3D === Proposed Collab Promotion: Keller: 9:15am [25 min] === Dave: Overview === Coffee Break: 9:40am [20 min] === === Collab: Makeig / Worrell / Warfield: 10:00am [35 min] === Chris: Overview Seok: Low-order Constrained Regularization === Collab: Henriquez and Treidman / Jolley: 10:35am [45 min] === Rob: Overview of Henriquez Collab Jeroen: Specific research results Rob: Overview of Triedman / Jolley Collab Jeroen: Specific research results === WEB Tour: 11:20am [25 min] === === Lunch: 11:45pm [60 min] === === Core: BioPSE: 12:45pm [20 min] === Dave: Overview === Core: Mathematical Modeling and Simulation: 1:05pm [25 min] === Rob: Overview Dafang Wang: Computational Inverse Problems (ECG) === Core: Image and Geometry Processing: 1:30pm [40 min] === Ross: Overview Jeroen: Current state meshing and current plans Miriah: Meshing with refs to Treidman and NCMIR === Coffee Break: 2:10pm [20 min] === === Core: Visualization: 2:30pm [30 min] === Chris: Overview === Service, Dissemintation, Training, and Administration: 3:00pm [30 min] === Steve: Overview === Future: 3:30pm [30 min] === Chris: Leads renewal strategy discussion === EAB Executive Session: 4:00pm [60 min] === === Meeting with Center Admin: 5:00pm [60 min] === === Dinner (Chris will take people out): 6:15pm === Exec:CIBC Exec Area 100 2566 5069 5026 2007-09-27T12:57:53Z Macleod 3 /* Review of Collaborations */ wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13, 2007 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-capecchi-july07.pdf|Capecchi in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-makeig-worrell-warfield.pdf|Makeig/Worrell and Warfield in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolley.pdf|Triedman-Jolley in pdf]] and in [[Media:collab-triedman-jolley.tex|LaTeX source]] #[[Media:collab-keller.pdf|Keller in pdf]] and in [[Media:collab-keller.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary 5073 5069 2007-11-29T17:54:30Z Macleod 3 wikitext text/x-wiki This page is meant for use by the Executive of the Center for Integrative Biomedical Computing. If you land here are not on the Exec, please report it to Erik. To create a protected page, the name must begin with "Exec:". ===Review of Collaborations=== For the August 13, 2007 meeting of the CIBC Exec, we carried out reviews of the state of all the collaborations. Below is as summary of those evaluations prepared before the meeting. #[[Media:collab-capecchi-july07.pdf|Capecchi in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-ncmir_july07.pdf|NCMIR in pdf]] and in [[Media:collab_ncmir_july07.tex|LaTeX source]] #[[Media:collab-henriquez-new.pdf|Henriquez in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-makeig-worrell-warfield.pdf|Makeig/Worrell and Warfield in pdf]] and in [[Media:collab-henriquez-new.tex|LaTeX source]] #[[Media:collab-triedman-jolley.pdf|Triedman-Jolley in pdf]] and in [[Media:collab-triedman-jolley.tex|LaTeX source]] #[[Media:collab-keller.pdf|Keller in pdf]] and in [[Media:collab-keller.tex|LaTeX source]] For reference and as a pointer to some Wiki formatting tricks, Erik also prepared a [[Exec:CollabRev_Henriquez|native Wiki]] version of an early edition of the Henriquez collaboration summary User:Iksoolim 2 2579 5070 2007-10-01T17:14:58Z Erikj 2 wikitext text/x-wiki Ik Soo Lim Affiliation: Bangor University, UK About Me: Computer scientist working on medical graphics and visualization. 5071 5070 2007-10-01T17:15:05Z Erikj 2 wikitext text/x-wiki Ik Soo Lim Affiliation: Bangor University, UK About Me: Computer scientist working on medical graphics and visualization. Help:Contents 12 995 5072 5042 2007-11-28T18:54:58Z Erikj 2 /* Editing and Formatting */ wikitext text/x-wiki == Editing and Formatting == The wiki understands many basic HTML tags, but for most things it is best to use wiki text. Here are some helpful guides. * [http://www.mediawiki.org/wiki/Help:Formatting Help:Formatting] * [http://meta.wikimedia.org/wiki/Help:Editing Help:Editing] * [http://www.mediawiki.org/wiki/Help:Images Help:Images] * [http://meta.wikimedia.org/wiki/Help:Images_and_other_uploaded_files Help:Images and other uploaded files.] * [http://www.mediawiki.org/wiki/Help:Links Help:Links] * [http://www.mediawiki.org/wiki/Help:Tables Help:Tables] - Note HTML tables work also. * [http://meta.wikimedia.org/wiki/Help:Formula Help:Mathematics Markup] == Secure Pages == Pages can be restricted so they can be viewed only by logged in users who are members of a specific group by naming them appropriately. Currently, there are two available restricted namespaces, <b>"Exec:"</b> for members of the "exec" group and <b>"Collab:"</b> for members of the "collab" group. To create a restricted page, simply title the page starting with the namespace, i.e. "Collab:". This would place it in the "Collab:" namespace. Pages can be created by first making a link to a nonexistent page. Then click that link and you will be taken to an editing page where you can add your content. If you need access to a restricted group, please email the webmaster (webmaster[at]sci.utah.edu). Be aware that the wiki can only provide a weak level of security. Consider it a "nothing to see here, move along" not a guarantee of security. Please read this [[Notice_on_Wiki_Security]]. File:Collab-ncmir july07.pdf 6 2580 5074 2007-11-29T17:57:37Z Macleod 3 wikitext text/x-wiki File:Collab-ncmir july07.tex 6 2581 5075 2007-11-29T17:58:17Z Macleod 3 wikitext text/x-wiki Main Page 0 1 5076 4989 2007-12-08T16:10:34Z Macleod 3 /* Development Info */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5079 5076 2007-12-11T22:12:03Z Mjc 35 /* Technical Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5099 5079 2008-02-08T22:36:53Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] [[Collab:test]] 5101 5099 2008-02-28T13:07:38Z Macleod 3 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] [[Collab:test]] CIBC:Project:Windows 0 2582 5077 2007-12-11T17:52:37Z Worthen 39 wikitext text/x-wiki This is a document hoping to document any windows-specific issues seen in the last few years. == DLL Programming == Perhaps the most painful part of maintaining a software for package is interfacing with DLLs. Basically, it comes down to: Every symbol in a DLL you want access to in another DLL (or the main exe) needs to be marked with __declspec(dllexport), and every symbol you need to read from another DLL needs to be marked with __declspec(dllimport). === Shortcut === In SCIRun, this system is shortcut with the SCISHARE macro, which is typically used in header files so it can be imported and exported. The shortcut is created by saying “If I’m build XXX DLL, then make everything that says ‘SCISHARE’ that is part of that library dllexport. Otherwise make it be dllimport. We control that statement via the share.h include file. Here is an example: <pre> #undef SCISHARE #if defined(_WIN32 ) && !defined(BUILD_SCIRUN_STATIC) && defined(BUILD_Core_Thread) # define SCISHARE __declspec(dllexport) #else # define SCISHARE #endif </pre> and we in any Thread .h file, include share.h. Although, notice that <Core/Thread/share.h> is always the last thing included. This is because Thread.h could include Exception.h, which could include its own share.h, so Thread’s SCISHARE would need to be reset. Then we need to tell the make system that when building Thread source files, to define BUILD_Core_Thread, which you can probably see at most of the SCIRun CMakeLists.txt files. === Placement === The most common and easy way to do this is to export/import an entire class. To do this, do: <pre> class SCISHARE Thread { … }; </pre> Global functions: <pre> SCISHARE void doJunk(); </pre> Global variables: <pre> SCISHARE PackageDB* packageDB; </pre> (this will often be marked with an extern) With global variables it is often the case to define it in a .cc files and reference it in a .cc file. In this case, you must fully qualify it: .cc file defining: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllexport) #endif SCISHARE int dude; </pre> .cc file using: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllimport) #endif SCISHARE extern int dude; </pre> When NOT to do it Never SCISHARE templated code or inlines. If there is an inline function inside a class, it’s still fine to SCISHARE the entire class. === Cygwin/MinGW compilers === If you ever decide to use these again, you should be aware that you cannot SCISHARE an entire class. There are, however, compiler options to export all symbols, but with this option, you still have to mark global variables. A side note about cygwin: if you don’t want to depend on cyg1.dll, compile with –mno-cygwin. == Finding DLLs == Windows has no LD_LIBRARY_PATH and no -rpath path storing. Windows finds DLLs in the following order: <ul> <li> directory of the executable <li> a directory in the PATH variable <li> windows system directory </ul> OR if the DLL was linked in via a manifest, it will look in a specific location. == Windows system calls == If you use a system call, it’s going to different on windows. Please keep this in mind if adding system calls to your code. If you don’t know the windows equivalent, please ask somebody who does (or who can figure it out quickly), and please do this before committing your code. == C Runtime Libraries == Windows has basically two methods of running C runtime code – static or DLL. The general rule is to pick one and make sure that every single library in your application is using it. I believe it’s okay to mix versions of the same type (ala 2003 vs. 2005) as long as there not debug. I don’t recommend it if you can avoid it, though. === Compiler Options === <ul> <li>/MD – dynamic CRT – most common, especially among apps with lots of DLLs <li>/MT – static CRT <li>/MDd – dynamic debug CRT – don’t distribute apps with this (it’s illegal). <li>/MTd – static debug CRT </ul> So you’ll notice every release of Seg3D has come with a msvcr71.dll and msvcp71.dll. These are the C runtime libraries. I could have made static ones, but to do so I would have had to hack ITK’s make system to do /MT instead of /MD, and that would just confuse everybody. === Visual Studio 2005 CRT === Starting with Visual Studio 2005, Visual Studio has linked against the CRT with a manifest. This basically says “look for this version of a DLL in this place”. I have yet to discover how to distribute msvcr80.dll such that the installed app on a different machine will identify it. Once this is discovered, we can stop using VS 2003 altogether. == OpenGL on windows == OpenGL is a little different on windows. On Windows XP and earlier, compile-time functionality is locked to version 1.1, and on Vista it is (I believe) 1.4. If you want greater functionality, you need to query its address with extensions. Glew is highly recommended, as you are probably already are using it to determine available opengl functionality in unix programs. If OpenGL comes with less functionality than expected, and futher digging reveals that you have “Microsoft OpenGL 1.1”, you probably need to upgrade your video card driver. Microsoft OpenGL on windows is bypassed via some client channel set up by your video driver. == Hash_map == As hash_map is not standard, the implementation is slightly different on windows. See the <pre> #if defined(__ECC) || defined(_MSC_VER) </pre> sections in SCIRun/src/Core/Datatypes == Solutions and Projects == Instead of constructing Makefiles, Visual Studio uses Solutions and Projects. A solution is a runtime environment containing one or more projects. You can open it up in Visual Studio, or compile it on the command line: <pre> devenv /build solution-file or devenv /build solution-file /project project-file </pre> In the case of the VS Express, you can use VCExpress instead of devenv. == Unix features not available on windows == Neither fork nor any derivative of it exists on windows. Sorry. There are a variety of CreateProcess or SpawnProcess functions which are helpful in executing external jobs, but no fork. == Installers == I’ve played with a variety of installers. They’re all pretty straightforward – I am using Inno Setup right now, and have an example script file checked into the Seg3D/scripts directory. I had some problems using the MSI installer (that comes with Visual Studio) on several machines – it just crashes when the wizard closes and it starts to do real work. Then again, Inno failed on a machine as well. Googling the error messages didn’t provide much insight, it blamed the problem on viruses and such. == Windows Thirdparty == The Windows thirdparty is not (presently) integrated into the thirdparty install script. It comes with its own solution, which produces a nice little package which you can distribute anywhere (you can do the same thing on unix if you follow the right set of instructions, but nobody believes me). You just tell it to compile and go, choosing either Debug or Release, in either VS 2003 or 2005. Constructing the package was kind of a pain. If stuff gets added to thirdparty, each package will have to be added to this solution as its own project. Some of the packages came with their own project (like wx widgets, teem, freetype, zlib, and png do), and some don’t (like all of tcl). Adding the right files has been difficult, but once added, you never have to do it again (unless you upgrade your tcl version or something). == Windows shell (batch) programs, and system() command == Windows shells do not operate like sh or tcsh. Many features are unavailable, like back-quote evaulation and '&&' to execute a second command. Environment variables are referenced with %VAR%. For more information on batch files, you can see [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true MS batch file docs] As in other OSs, the system command executes one command is if it were in the shell. == SCIRun-specific == === Dynamic compilation === With windows, I needed to execute a separate process to run dynamic compilation, as I couldn't execute cd dir && make in system(), so I in essence ran that in a batch file. Instead of forcing the user to specify additional information (like path to NMake), I opted to make this batch file emulate make, without dependencies. === CreateTclIndex === On windows, createTclIndex is a batch file that calls itclsh on the directory where the tcl files are. === Installation === A SCIRun installation requires scirun.exe, the SCIRun dlls, the thirdparty DLLs (and the CRT DLLs), all the TCL and XML files in their relative structure. Since scirun sets up the environment with a hardcoded objdir and srcdir, I (with an installer) set up registry variables to override the location. So I have <pre> SCIRun src Core GUI/tcl files with tclIndex Dataflow GUI/tcl files with tclIndex XML/xml files Packages/Teem,Biopse,etc. with tcl and xml files in Dataflow/{GUI,XML} bin on-the-fly-libs (see below) scirun.exe All the DLLs (including CRT) </pre> Then IF you support dynamic compilation, you need to supply a million headers (which ones they are, I'm not sure) in src in their paths, and then find a way to have the user specify the path to the compiler (THIS IS NOT DONE YET). If you don't support dynamic compilation, you need to turn it off by setting the CMake ENABLE_DYNAMIC_COMPILATION to off. Optionally you can distribute as many on-the-fly-libs as you want in on-the-fly-libs. 5078 5077 2007-12-11T19:25:32Z Worthen 39 wikitext text/x-wiki This is a document hoping to document any windows-specific issues seen in the last few years. == DLL Programming == Perhaps the most painful part of maintaining a software for package is interfacing with DLLs. Basically, it comes down to: Every symbol in a DLL you want access to in another DLL (or the main exe) needs to be marked with __declspec(dllexport), and every symbol you need to read from another DLL needs to be marked with __declspec(dllimport). === Shortcut === In SCIRun, this system is shortcut with the SCISHARE macro, which is typically used in header files so it can be imported and exported. The shortcut is created by saying “If I’m build XXX DLL, then make everything that says ‘SCISHARE’ that is part of that library dllexport. Otherwise make it be dllimport. We control that statement via the share.h include file. Here is an example: <pre> #undef SCISHARE #if defined(_WIN32 ) && !defined(BUILD_SCIRUN_STATIC) && defined(BUILD_Core_Thread) # define SCISHARE __declspec(dllexport) #else # define SCISHARE #endif </pre> and we in any Thread .h file, include share.h. Although, notice that <Core/Thread/share.h> is always the last thing included. This is because Thread.h could include Exception.h, which could include its own share.h, so Thread’s SCISHARE would need to be reset. Then we need to tell the make system that when building Thread source files, to define BUILD_Core_Thread, which you can probably see at most of the SCIRun CMakeLists.txt files. === Placement === The most common and easy way to do this is to export/import an entire class. To do this, do: <pre> class SCISHARE Thread { … }; </pre> Global functions: <pre> SCISHARE void doJunk(); </pre> Global variables: <pre> SCISHARE PackageDB* packageDB; </pre> (this will often be marked with an extern) With global variables it is often the case to define it in a .cc files and reference it in a .cc file. In this case, you must fully qualify it: .cc file defining: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllexport) #endif SCISHARE int dude; </pre> .cc file using: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllimport) #endif SCISHARE extern int dude; </pre> When NOT to do it Never SCISHARE templated code or inlines. If there is an inline function inside a class, it’s still fine to SCISHARE the entire class. === Cygwin/MinGW compilers === If you ever decide to use these again, you should be aware that you cannot SCISHARE an entire class. There are, however, compiler options to export all symbols, but with this option, you still have to mark global variables. A side note about cygwin: if you don’t want to depend on cyg1.dll, compile with –mno-cygwin. == Finding DLLs == Windows has no LD_LIBRARY_PATH and no -rpath path storing. Windows finds DLLs in the following order: <ul> <li> directory of the executable <li> a directory in the PATH variable <li> windows system directory </ul> OR if the DLL was linked in via a manifest, it will look in a specific location. == CMake's location of binary files == CMake, as per a visual studio convention, creates a bindir/Debug and/or a bindir/Release depending on what you make. This is because one project/solution will let you select debug or release in the same configuration but output in different directories. However, because of Dynamic Compilation, we are restricted to one mode, since at code time, there is no way to differentiate among the configurations at code time. Also, there are cases when scirun expects output files (like in the case of convert/utils) to not be in the release/debug dir, but in the bin dir. In these cases, there are CMake rules to copy these programs to the correct location. == Windows system calls == If you use a system call, it’s going to different on windows. Please keep this in mind if adding system calls to your code. If you don’t know the windows equivalent, please ask somebody who does (or who can figure it out quickly), and please do this before committing your code. == C Runtime Libraries == Windows has basically two methods of running C runtime code – static or DLL. The general rule is to pick one and make sure that every single library in your application is using it. I believe it’s okay to mix versions of the same type (ala 2003 vs. 2005) as long as there not debug. I don’t recommend it if you can avoid it, though. === Compiler Options === <ul> <li>/MD – dynamic CRT – most common, especially among apps with lots of DLLs <li>/MT – static CRT <li>/MDd – dynamic debug CRT – don’t distribute apps with this (it’s illegal). <li>/MTd – static debug CRT </ul> So you’ll notice every release of Seg3D has come with a msvcr71.dll and msvcp71.dll. These are the C runtime libraries. I could have made static ones, but to do so I would have had to hack ITK’s make system to do /MT instead of /MD, and that would just confuse everybody. === Visual Studio 2005 CRT === Starting with Visual Studio 2005, Visual Studio has linked against the CRT with a manifest. This basically says “look for this version of a DLL in this place”. I have yet to discover how to distribute msvcr80.dll such that the installed app on a different machine will identify it. Once this is discovered, we can stop using VS 2003 altogether. == OpenGL on windows == OpenGL is a little different on windows. On Windows XP and earlier, compile-time functionality is locked to version 1.1, and on Vista it is (I believe) 1.4. If you want greater functionality, you need to query its address with extensions. Glew is highly recommended, as you are probably already are using it to determine available opengl functionality in unix programs. If OpenGL comes with less functionality than expected, and futher digging reveals that you have “Microsoft OpenGL 1.1”, you probably need to upgrade your video card driver. Microsoft OpenGL on windows is bypassed via some client channel set up by your video driver. == Hash_map == As hash_map is not standard, the implementation is slightly different on windows. See the <pre> #if defined(__ECC) || defined(_MSC_VER) </pre> sections in SCIRun/src/Core/Datatypes == Solutions and Projects == Instead of constructing Makefiles, Visual Studio uses Solutions and Projects. A solution is a runtime environment containing one or more projects. You can open it up in Visual Studio, or compile it on the command line: <pre> devenv /build solution-file or devenv /build solution-file /project project-file </pre> In the case of the VS Express, you can use VCExpress instead of devenv. == Unix features not available on windows == Neither fork nor any derivative of it exists on windows. Sorry. There are a variety of CreateProcess or SpawnProcess functions which are helpful in executing external jobs, but no fork. == Installers == I’ve played with a variety of installers. They’re all pretty straightforward – I am using Inno Setup right now, and have an example script file checked into the Seg3D/scripts directory. I had some problems using the MSI installer (that comes with Visual Studio) on several machines – it just crashes when the wizard closes and it starts to do real work. Then again, Inno failed on a machine as well. Googling the error messages didn’t provide much insight, it blamed the problem on viruses and such. == Windows Thirdparty == The Windows thirdparty is not (presently) integrated into the thirdparty install script. It comes with its own solution, which produces a nice little package which you can distribute anywhere (you can do the same thing on unix if you follow the right set of instructions, but nobody believes me). You just tell it to compile and go, choosing either Debug or Release, in either VS 2003 or 2005. Constructing the package was kind of a pain. If stuff gets added to thirdparty, each package will have to be added to this solution as its own project. Some of the packages came with their own project (like wx widgets, teem, freetype, zlib, and png do), and some don’t (like all of tcl). Adding the right files has been difficult, but once added, you never have to do it again (unless you upgrade your tcl version or something). == Windows shell (batch) programs, and system() command == Windows shells do not operate like sh or tcsh. Many features are unavailable, like back-quote evaulation and '&&' to execute a second command. Environment variables are referenced with %VAR%. For more information on batch files, you can see [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true MS batch file docs] As in other OSs, the system command executes one command is if it were in the shell. == Windows filesystem == Windows files are set up as follows: <drive letter>:dir1\dir2\dir with space\file1. where a given drive letter is a mount point. That being said, MOST windows system calls function correctly with either / or \, and the drive letter and : may be omitted if the file you're accessing is on the current drive. There are however, a few system calls that require \, and the primary one that comes to mind is mkdir. For conversion between unix and windows, there are convertToWindowsPath and convertToUnixPath functions in Core/Util/FileUtils. I recommend converting everything to a Unix path and using a windows path where necessary - primarily because having \ in a string has been known to be treated as an escape character when interpreting the string literally. == SCIRun-specific == === Dynamic compilation === With windows, I needed to execute a separate process to run dynamic compilation, as I couldn't execute cd dir && make in system(), so I in essence ran that in a batch file. Instead of forcing the user to specify additional information (like path to NMake), I opted to make this batch file emulate make, without dependencies. === CreateTclIndex === On windows, createTclIndex is a batch file that calls itclsh on the directory where the tcl files are. === Installation === A SCIRun installation requires scirun.exe, the SCIRun dlls, the thirdparty DLLs (and the CRT DLLs), all the TCL and XML files in their relative structure. Since scirun sets up the environment with a hardcoded objdir and srcdir, I (with an installer) set up registry variables to override the location. So I have <pre> SCIRun src Core GUI/tcl files with tclIndex Dataflow GUI/tcl files with tclIndex XML/xml files Packages/Teem,Biopse,etc. with tcl and xml files in Dataflow/{GUI,XML} bin on-the-fly-libs (see below) scirun.exe All the DLLs (including CRT) </pre> Then IF you support dynamic compilation, you need to supply a million headers (which ones they are, I'm not sure) in src in their paths, and then find a way to have the user specify the path to the compiler (THIS IS NOT DONE YET). If you don't support dynamic compilation, you need to turn it off by setting the CMake ENABLE_DYNAMIC_COMPILATION to off. Optionally you can distribute as many on-the-fly-libs as you want in on-the-fly-libs. 5081 5078 2007-12-12T00:54:46Z Worthen 39 wikitext text/x-wiki This is a document hoping to document any windows-specific issues seen in the last few years. == DLL Programming == Perhaps the most painful part of maintaining a software for package is interfacing with DLLs. Basically, it comes down to: Every symbol in a DLL you want access to in another DLL (or the main exe) needs to be marked with __declspec(dllexport), and every symbol you need to read from another DLL needs to be marked with __declspec(dllimport). === Shortcut === In SCIRun, this system is shortcut with the SCISHARE macro, which is typically used in header files so it can be imported and exported. The shortcut is created by saying “If I’m build XXX DLL, then make everything that says ‘SCISHARE’ that is part of that library dllexport. Otherwise make it be dllimport. We control that statement via the share.h include file. Here is an example: <pre> #undef SCISHARE #if defined(_WIN32 ) && !defined(BUILD_SCIRUN_STATIC) && defined(BUILD_Core_Thread) # define SCISHARE __declspec(dllexport) #else # define SCISHARE #endif </pre> and we in any Thread .h file, include share.h. Although, notice that <Core/Thread/share.h> is always the last thing included. This is because Thread.h could include Exception.h, which could include its own share.h, so Thread’s SCISHARE would need to be reset. Then we need to tell the make system that when building Thread source files, to define BUILD_Core_Thread, which you can probably see at most of the SCIRun CMakeLists.txt files. === Placement === The most common and easy way to do this is to export/import an entire class. To do this, do: <pre> class SCISHARE Thread { … }; </pre> Global functions: <pre> SCISHARE void doJunk(); </pre> Global variables: <pre> SCISHARE PackageDB* packageDB; </pre> (this will often be marked with an extern) With global variables it is often the case to define it in a .cc files and reference it in a .cc file. In this case, you must fully qualify it: .cc file defining: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllexport) #endif SCISHARE int dude; </pre> .cc file using: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllimport) #endif SCISHARE extern int dude; </pre> When NOT to do it Never SCISHARE templated code or inlines. If there is an inline function inside a class, it’s still fine to SCISHARE the entire class. === Cygwin/MinGW compilers === If you ever decide to use these again, you should be aware that you cannot SCISHARE an entire class. There are, however, compiler options to export all symbols, but with this option, you still have to mark global variables. A side note about cygwin: if you don’t want to depend on cyg1.dll, compile with –mno-cygwin. == Finding DLLs == Windows has no LD_LIBRARY_PATH and no -rpath path storing. Windows finds DLLs in the following order: <ul> <li> directory of the executable <li> a directory in the PATH variable <li> windows system directory </ul> OR if the DLL was linked in via a manifest, it will look in a specific location. == CMake's location of binary files == CMake, as per a visual studio convention, creates a bindir/Debug and/or a bindir/Release depending on what you make. This is because one project/solution will let you select debug or release in the same configuration but output in different directories. However, because of Dynamic Compilation, we are restricted to one mode, since at code time, there is no way to differentiate among the configurations at code time. Also, there are cases when scirun expects output files (like in the case of convert/utils) to not be in the release/debug dir, but in the bin dir. In these cases, there are CMake rules to copy these programs to the correct location. == Windows system calls == If you use a system call, it’s going to different on windows. Please keep this in mind if adding system calls to your code. If you don’t know the windows equivalent, please ask somebody who does (or who can figure it out quickly), and please do this before committing your code. == C Runtime Libraries == Windows has basically two methods of running C runtime code – static or DLL. The general rule is to pick one and make sure that every single library in your application is using it. I believe it’s okay to mix versions of the same type (ala 2003 vs. 2005) as long as there not debug. I don’t recommend it if you can avoid it, though. === Compiler Options === <ul> <li>/MD – dynamic CRT – most common, especially among apps with lots of DLLs <li>/MT – static CRT <li>/MDd – dynamic debug CRT – don’t distribute apps with this (it’s illegal). <li>/MTd – static debug CRT </ul> So you’ll notice every release of Seg3D has come with a msvcr71.dll and msvcp71.dll. These are the C runtime libraries. I could have made static ones, but to do so I would have had to hack ITK’s make system to do /MT instead of /MD, and that would just confuse everybody. === Visual Studio 2005 CRT === Starting with Visual Studio 2005, Visual Studio has linked against the CRT with a manifest. This basically says “look for this version of a DLL in this place”. I have yet to discover how to distribute msvcr80.dll such that the installed app on a different machine will identify it. Once this is discovered, we can stop using VS 2003 altogether. == OpenGL on windows == OpenGL is a little different on windows. On Windows XP and earlier, compile-time functionality is locked to version 1.1, and on Vista it is (I believe) 1.4. If you want greater functionality, you need to query its address with extensions. Glew is highly recommended, as you are probably already are using it to determine available opengl functionality in unix programs. If OpenGL comes with less functionality than expected, and futher digging reveals that you have “Microsoft OpenGL 1.1”, you probably need to upgrade your video card driver. Microsoft OpenGL on windows is bypassed via some client channel set up by your video driver. == Hash_map == As hash_map is not standard, the implementation is slightly different on windows. See the <pre> #if defined(__ECC) || defined(_MSC_VER) </pre> sections in SCIRun/src/Core/Datatypes == Macro expansion == Based on some experimentation, it seems if the right header files get included, that min, max, rad1, and rad2 are expanded to other things, and if these are used as variable names, bad things could happen... == Solutions and Projects == Instead of constructing Makefiles, Visual Studio uses Solutions and Projects. A solution is a runtime environment containing one or more projects. You can open it up in Visual Studio, or compile it on the command line: <pre> devenv /build solution-file or devenv /build solution-file /project project-file </pre> In the case of the VS Express, you can use VCExpress instead of devenv. == Unix features not available on windows == Neither fork nor any derivative of it exists on windows. Sorry. There are a variety of CreateProcess or SpawnProcess functions which are helpful in executing external jobs, but no fork. == Installers == I’ve played with a variety of installers. They’re all pretty straightforward – I am using Inno Setup right now, and have an example script file checked into the Seg3D/scripts directory. I had some problems using the MSI installer (that comes with Visual Studio) on several machines – it just crashes when the wizard closes and it starts to do real work. Then again, Inno failed on a machine as well. Googling the error messages didn’t provide much insight, it blamed the problem on viruses and such. == Windows Thirdparty == The Windows thirdparty is not (presently) integrated into the thirdparty install script. It comes with its own solution, which produces a nice little package which you can distribute anywhere (you can do the same thing on unix if you follow the right set of instructions, but nobody believes me). You just tell it to compile and go, choosing either Debug or Release, in either VS 2003 or 2005. Constructing the package was kind of a pain. If stuff gets added to thirdparty, each package will have to be added to this solution as its own project. Some of the packages came with their own project (like wx widgets, teem, freetype, zlib, and png do), and some don’t (like all of tcl). Adding the right files has been difficult, but once added, you never have to do it again (unless you upgrade your tcl version or something). == Windows shell (batch) programs, and system() command == Windows shells do not operate like sh or tcsh. Many features are unavailable, like back-quote evaulation and '&&' to execute a second command. Environment variables are referenced with %VAR%. For more information on batch files, you can see [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true MS batch file docs] As in other OSs, the system command executes one command is if it were in the shell. == Windows filesystem == Windows files are set up as follows: <drive letter>:dir1\dir2\dir with space\file1. where a given drive letter is a mount point. That being said, MOST windows system calls function correctly with either / or \, and the drive letter and : may be omitted if the file you're accessing is on the current drive. There are however, a few system calls that require \, and the primary one that comes to mind is mkdir. For conversion between unix and windows, there are convertToWindowsPath and convertToUnixPath functions in Core/Util/FileUtils. I recommend converting everything to a Unix path and using a windows path where necessary - primarily because having \ in a string has been known to be treated as an escape character when interpreting the string literally. == SCIRun-specific == === Dynamic compilation === With windows, I needed to execute a separate process to run dynamic compilation, as I couldn't execute cd dir && make in system(), so I in essence ran that in a batch file. Instead of forcing the user to specify additional information (like path to NMake), I opted to make this batch file emulate make, without dependencies. === CreateTclIndex === On windows, createTclIndex is a batch file that calls itclsh on the directory where the tcl files are. === Installation === A SCIRun installation requires scirun.exe, the SCIRun dlls, the thirdparty DLLs (and the CRT DLLs), all the TCL and XML files in their relative structure. Since scirun sets up the environment with a hardcoded objdir and srcdir, I (with an installer) set up registry variables to override the location. So I have <pre> SCIRun src Core GUI/tcl files with tclIndex Dataflow GUI/tcl files with tclIndex XML/xml files Packages/Teem,Biopse,etc. with tcl and xml files in Dataflow/{GUI,XML} bin on-the-fly-libs (see below) scirun.exe All the DLLs (including CRT) </pre> Then IF you support dynamic compilation, you need to supply a million headers (which ones they are, I'm not sure) in src in their paths, and then find a way to have the user specify the path to the compiler (THIS IS NOT DONE YET). If you don't support dynamic compilation, you need to turn it off by setting the CMake ENABLE_DYNAMIC_COMPILATION to off. Optionally you can distribute as many on-the-fly-libs as you want in on-the-fly-libs. 5082 5081 2007-12-12T00:55:10Z Worthen 39 wikitext text/x-wiki This is a document hoping to document any windows-specific issues seen in the last few years. == DLL Programming == Perhaps the most painful part of maintaining a software for package is interfacing with DLLs. Basically, it comes down to: Every symbol in a DLL you want access to in another DLL (or the main exe) needs to be marked with __declspec(dllexport), and every symbol you need to read from another DLL needs to be marked with __declspec(dllimport). === Shortcut === In SCIRun, this system is shortcut with the SCISHARE macro, which is typically used in header files so it can be imported and exported. The shortcut is created by saying “If I’m build XXX DLL, then make everything that says ‘SCISHARE’ that is part of that library dllexport. Otherwise make it be dllimport. We control that statement via the share.h include file. Here is an example: <pre> #undef SCISHARE #if defined(_WIN32 ) && !defined(BUILD_SCIRUN_STATIC) && defined(BUILD_Core_Thread) # define SCISHARE __declspec(dllexport) #else # define SCISHARE #endif </pre> and we in any Thread .h file, include share.h. Although, notice that <Core/Thread/share.h> is always the last thing included. This is because Thread.h could include Exception.h, which could include its own share.h, so Thread’s SCISHARE would need to be reset. Then we need to tell the make system that when building Thread source files, to define BUILD_Core_Thread, which you can probably see at most of the SCIRun CMakeLists.txt files. === Placement === The most common and easy way to do this is to export/import an entire class. To do this, do: <pre> class SCISHARE Thread { … }; </pre> Global functions: <pre> SCISHARE void doJunk(); </pre> Global variables: <pre> SCISHARE PackageDB* packageDB; </pre> (this will often be marked with an extern) With global variables it is often the case to define it in a .cc files and reference it in a .cc file. In this case, you must fully qualify it: .cc file defining: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllexport) #endif SCISHARE int dude; </pre> .cc file using: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllimport) #endif SCISHARE extern int dude; </pre> When NOT to do it Never SCISHARE templated code or inlines. If there is an inline function inside a class, it’s still fine to SCISHARE the entire class. === Cygwin/MinGW compilers === If you ever decide to use these again, you should be aware that you cannot SCISHARE an entire class. There are, however, compiler options to export all symbols, but with this option, you still have to mark global variables. A side note about cygwin: if you don’t want to depend on cyg1.dll, compile with –mno-cygwin. == Finding DLLs == Windows has no LD_LIBRARY_PATH and no -rpath path storing. Windows finds DLLs in the following order: <ul> <li> directory of the executable <li> a directory in the PATH variable <li> windows system directory </ul> OR if the DLL was linked in via a manifest, it will look in a specific location. == CMake's location of binary files == CMake, as per a visual studio convention, creates a bindir/Debug and/or a bindir/Release depending on what you make. This is because one project/solution will let you select debug or release in the same configuration but output in different directories. However, because of Dynamic Compilation, we are restricted to one mode, since at code time, there is no way to differentiate among the configurations at code time. Also, there are cases when scirun expects output files (like in the case of convert/utils) to not be in the release/debug dir, but in the bin dir. In these cases, there are CMake rules to copy these programs to the correct location. == Windows system calls == If you use a system call, it’s going to different on windows. Please keep this in mind if adding system calls to your code. If you don’t know the windows equivalent, please ask somebody who does (or who can figure it out quickly), and please do this before committing your code. == C Runtime Libraries == Windows has basically two methods of running C runtime code – static or DLL. The general rule is to pick one and make sure that every single library in your application is using it. I believe it’s okay to mix versions of the same type (ala 2003 vs. 2005) as long as there not debug. I don’t recommend it if you can avoid it, though. === Compiler Options === <ul> <li>/MD – dynamic CRT – most common, especially among apps with lots of DLLs <li>/MT – static CRT <li>/MDd – dynamic debug CRT – don’t distribute apps with this (it’s illegal). <li>/MTd – static debug CRT </ul> So you’ll notice every release of Seg3D has come with a msvcr71.dll and msvcp71.dll. These are the C runtime libraries. I could have made static ones, but to do so I would have had to hack ITK’s make system to do /MT instead of /MD, and that would just confuse everybody. === Visual Studio 2005 CRT === Starting with Visual Studio 2005, Visual Studio has linked against the CRT with a manifest. This basically says “look for this version of a DLL in this place”. I have yet to discover how to distribute msvcr80.dll such that the installed app on a different machine will identify it. Once this is discovered, we can stop using VS 2003 altogether. == OpenGL on windows == OpenGL is a little different on windows. On Windows XP and earlier, compile-time functionality is locked to version 1.1, and on Vista it is (I believe) 1.4. If you want greater functionality, you need to query its address with extensions. Glew is highly recommended, as you are probably already are using it to determine available opengl functionality in unix programs. If OpenGL comes with less functionality than expected, and futher digging reveals that you have “Microsoft OpenGL 1.1”, you probably need to upgrade your video card driver. Microsoft OpenGL on windows is bypassed via some client channel set up by your video driver. == Hash_map == As hash_map is not standard, the implementation is slightly different on windows. See the <pre> #if defined(__ECC) || defined(_MSC_VER) </pre> sections in SCIRun/src/Core/Datatypes == Quirky macro expansion == Based on some experimentation, it seems if the right header files get included, that min, max, rad1, and rad2 are expanded to other things, and if these are used as variable names, bad things could happen... == Solutions and Projects == Instead of constructing Makefiles, Visual Studio uses Solutions and Projects. A solution is a runtime environment containing one or more projects. You can open it up in Visual Studio, or compile it on the command line: <pre> devenv /build solution-file or devenv /build solution-file /project project-file </pre> In the case of the VS Express, you can use VCExpress instead of devenv. == Unix features not available on windows == Neither fork nor any derivative of it exists on windows. Sorry. There are a variety of CreateProcess or SpawnProcess functions which are helpful in executing external jobs, but no fork. == Installers == I’ve played with a variety of installers. They’re all pretty straightforward – I am using Inno Setup right now, and have an example script file checked into the Seg3D/scripts directory. I had some problems using the MSI installer (that comes with Visual Studio) on several machines – it just crashes when the wizard closes and it starts to do real work. Then again, Inno failed on a machine as well. Googling the error messages didn’t provide much insight, it blamed the problem on viruses and such. == Windows Thirdparty == The Windows thirdparty is not (presently) integrated into the thirdparty install script. It comes with its own solution, which produces a nice little package which you can distribute anywhere (you can do the same thing on unix if you follow the right set of instructions, but nobody believes me). You just tell it to compile and go, choosing either Debug or Release, in either VS 2003 or 2005. Constructing the package was kind of a pain. If stuff gets added to thirdparty, each package will have to be added to this solution as its own project. Some of the packages came with their own project (like wx widgets, teem, freetype, zlib, and png do), and some don’t (like all of tcl). Adding the right files has been difficult, but once added, you never have to do it again (unless you upgrade your tcl version or something). == Windows shell (batch) programs, and system() command == Windows shells do not operate like sh or tcsh. Many features are unavailable, like back-quote evaulation and '&&' to execute a second command. Environment variables are referenced with %VAR%. For more information on batch files, you can see [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true MS batch file docs] As in other OSs, the system command executes one command is if it were in the shell. == Windows filesystem == Windows files are set up as follows: <drive letter>:dir1\dir2\dir with space\file1. where a given drive letter is a mount point. That being said, MOST windows system calls function correctly with either / or \, and the drive letter and : may be omitted if the file you're accessing is on the current drive. There are however, a few system calls that require \, and the primary one that comes to mind is mkdir. For conversion between unix and windows, there are convertToWindowsPath and convertToUnixPath functions in Core/Util/FileUtils. I recommend converting everything to a Unix path and using a windows path where necessary - primarily because having \ in a string has been known to be treated as an escape character when interpreting the string literally. == SCIRun-specific == === Dynamic compilation === With windows, I needed to execute a separate process to run dynamic compilation, as I couldn't execute cd dir && make in system(), so I in essence ran that in a batch file. Instead of forcing the user to specify additional information (like path to NMake), I opted to make this batch file emulate make, without dependencies. === CreateTclIndex === On windows, createTclIndex is a batch file that calls itclsh on the directory where the tcl files are. === Installation === A SCIRun installation requires scirun.exe, the SCIRun dlls, the thirdparty DLLs (and the CRT DLLs), all the TCL and XML files in their relative structure. Since scirun sets up the environment with a hardcoded objdir and srcdir, I (with an installer) set up registry variables to override the location. So I have <pre> SCIRun src Core GUI/tcl files with tclIndex Dataflow GUI/tcl files with tclIndex XML/xml files Packages/Teem,Biopse,etc. with tcl and xml files in Dataflow/{GUI,XML} bin on-the-fly-libs (see below) scirun.exe All the DLLs (including CRT) </pre> Then IF you support dynamic compilation, you need to supply a million headers (which ones they are, I'm not sure) in src in their paths, and then find a way to have the user specify the path to the compiler (THIS IS NOT DONE YET). If you don't support dynamic compilation, you need to turn it off by setting the CMake ENABLE_DYNAMIC_COMPILATION to off. Optionally you can distribute as many on-the-fly-libs as you want in on-the-fly-libs. 5083 5082 2007-12-17T21:51:50Z Worthen 39 /* Windows Thirdparty */ wikitext text/x-wiki This is a document hoping to document any windows-specific issues seen in the last few years. == DLL Programming == Perhaps the most painful part of maintaining a software for package is interfacing with DLLs. Basically, it comes down to: Every symbol in a DLL you want access to in another DLL (or the main exe) needs to be marked with __declspec(dllexport), and every symbol you need to read from another DLL needs to be marked with __declspec(dllimport). === Shortcut === In SCIRun, this system is shortcut with the SCISHARE macro, which is typically used in header files so it can be imported and exported. The shortcut is created by saying “If I’m build XXX DLL, then make everything that says ‘SCISHARE’ that is part of that library dllexport. Otherwise make it be dllimport. We control that statement via the share.h include file. Here is an example: <pre> #undef SCISHARE #if defined(_WIN32 ) && !defined(BUILD_SCIRUN_STATIC) && defined(BUILD_Core_Thread) # define SCISHARE __declspec(dllexport) #else # define SCISHARE #endif </pre> and we in any Thread .h file, include share.h. Although, notice that <Core/Thread/share.h> is always the last thing included. This is because Thread.h could include Exception.h, which could include its own share.h, so Thread’s SCISHARE would need to be reset. Then we need to tell the make system that when building Thread source files, to define BUILD_Core_Thread, which you can probably see at most of the SCIRun CMakeLists.txt files. === Placement === The most common and easy way to do this is to export/import an entire class. To do this, do: <pre> class SCISHARE Thread { … }; </pre> Global functions: <pre> SCISHARE void doJunk(); </pre> Global variables: <pre> SCISHARE PackageDB* packageDB; </pre> (this will often be marked with an extern) With global variables it is often the case to define it in a .cc files and reference it in a .cc file. In this case, you must fully qualify it: .cc file defining: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllexport) #endif SCISHARE int dude; </pre> .cc file using: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllimport) #endif SCISHARE extern int dude; </pre> When NOT to do it Never SCISHARE templated code or inlines. If there is an inline function inside a class, it’s still fine to SCISHARE the entire class. === Cygwin/MinGW compilers === If you ever decide to use these again, you should be aware that you cannot SCISHARE an entire class. There are, however, compiler options to export all symbols, but with this option, you still have to mark global variables. A side note about cygwin: if you don’t want to depend on cyg1.dll, compile with –mno-cygwin. == Finding DLLs == Windows has no LD_LIBRARY_PATH and no -rpath path storing. Windows finds DLLs in the following order: <ul> <li> directory of the executable <li> a directory in the PATH variable <li> windows system directory </ul> OR if the DLL was linked in via a manifest, it will look in a specific location. == CMake's location of binary files == CMake, as per a visual studio convention, creates a bindir/Debug and/or a bindir/Release depending on what you make. This is because one project/solution will let you select debug or release in the same configuration but output in different directories. However, because of Dynamic Compilation, we are restricted to one mode, since at code time, there is no way to differentiate among the configurations at code time. Also, there are cases when scirun expects output files (like in the case of convert/utils) to not be in the release/debug dir, but in the bin dir. In these cases, there are CMake rules to copy these programs to the correct location. == Windows system calls == If you use a system call, it’s going to different on windows. Please keep this in mind if adding system calls to your code. If you don’t know the windows equivalent, please ask somebody who does (or who can figure it out quickly), and please do this before committing your code. == C Runtime Libraries == Windows has basically two methods of running C runtime code – static or DLL. The general rule is to pick one and make sure that every single library in your application is using it. I believe it’s okay to mix versions of the same type (ala 2003 vs. 2005) as long as there not debug. I don’t recommend it if you can avoid it, though. === Compiler Options === <ul> <li>/MD – dynamic CRT – most common, especially among apps with lots of DLLs <li>/MT – static CRT <li>/MDd – dynamic debug CRT – don’t distribute apps with this (it’s illegal). <li>/MTd – static debug CRT </ul> So you’ll notice every release of Seg3D has come with a msvcr71.dll and msvcp71.dll. These are the C runtime libraries. I could have made static ones, but to do so I would have had to hack ITK’s make system to do /MT instead of /MD, and that would just confuse everybody. === Visual Studio 2005 CRT === Starting with Visual Studio 2005, Visual Studio has linked against the CRT with a manifest. This basically says “look for this version of a DLL in this place”. I have yet to discover how to distribute msvcr80.dll such that the installed app on a different machine will identify it. Once this is discovered, we can stop using VS 2003 altogether. == OpenGL on windows == OpenGL is a little different on windows. On Windows XP and earlier, compile-time functionality is locked to version 1.1, and on Vista it is (I believe) 1.4. If you want greater functionality, you need to query its address with extensions. Glew is highly recommended, as you are probably already are using it to determine available opengl functionality in unix programs. If OpenGL comes with less functionality than expected, and futher digging reveals that you have “Microsoft OpenGL 1.1”, you probably need to upgrade your video card driver. Microsoft OpenGL on windows is bypassed via some client channel set up by your video driver. == Hash_map == As hash_map is not standard, the implementation is slightly different on windows. See the <pre> #if defined(__ECC) || defined(_MSC_VER) </pre> sections in SCIRun/src/Core/Datatypes == Quirky macro expansion == Based on some experimentation, it seems if the right header files get included, that min, max, rad1, and rad2 are expanded to other things, and if these are used as variable names, bad things could happen... == Solutions and Projects == Instead of constructing Makefiles, Visual Studio uses Solutions and Projects. A solution is a runtime environment containing one or more projects. You can open it up in Visual Studio, or compile it on the command line: <pre> devenv /build solution-file or devenv /build solution-file /project project-file </pre> In the case of the VS Express, you can use VCExpress instead of devenv. == Unix features not available on windows == Neither fork nor any derivative of it exists on windows. Sorry. There are a variety of CreateProcess or SpawnProcess functions which are helpful in executing external jobs, but no fork. == Installers == I’ve played with a variety of installers. They’re all pretty straightforward – I am using Inno Setup right now, and have an example script file checked into the Seg3D/scripts directory. I had some problems using the MSI installer (that comes with Visual Studio) on several machines – it just crashes when the wizard closes and it starts to do real work. Then again, Inno failed on a machine as well. Googling the error messages didn’t provide much insight, it blamed the problem on viruses and such. == Windows Thirdparty == The Windows thirdparty is not (presently) integrated into the thirdparty install script. Instead do the following: 1) Download the thirdparty source, currently in http://www.sci.utah.edu/~worthen/3P/3P-win-source.zip. 2) Open the thirdparty.sln or thirdparty.2005.sln. Everything with VS 2005 has 2005 appended. 3) Choose either Debug, Release, StaticDebug, or StaticRelease, in either VS 2003 or 2005, and select Build from the Build menu. 4) The resulting package will be in debug, release, static-debug, or static-release (with an 05 appended if you used 2005). 5) Point SCIRun at that directory, or zip or copy it wherever you want. (you can do the same thing on unix if you follow the right set of instructions, but nobody believes me.) Constructing the package was kind of a pain. If stuff gets added to thirdparty, each package will have to be added to this solution as its own project. Some of the packages came with their own project (like wx widgets, teem, freetype, zlib, and png do), and some don’t (like all of tcl). Adding the right files has been difficult, but once added, you never have to do it again (unless you upgrade your tcl version or something). == Windows shell (batch) programs, and system() command == Windows shells do not operate like sh or tcsh. Many features are unavailable, like back-quote evaulation and '&&' to execute a second command. Environment variables are referenced with %VAR%. For more information on batch files, you can see [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true MS batch file docs] As in other OSs, the system command executes one command is if it were in the shell. == Windows filesystem == Windows files are set up as follows: <drive letter>:dir1\dir2\dir with space\file1. where a given drive letter is a mount point. That being said, MOST windows system calls function correctly with either / or \, and the drive letter and : may be omitted if the file you're accessing is on the current drive. There are however, a few system calls that require \, and the primary one that comes to mind is mkdir. For conversion between unix and windows, there are convertToWindowsPath and convertToUnixPath functions in Core/Util/FileUtils. I recommend converting everything to a Unix path and using a windows path where necessary - primarily because having \ in a string has been known to be treated as an escape character when interpreting the string literally. == SCIRun-specific == === Dynamic compilation === With windows, I needed to execute a separate process to run dynamic compilation, as I couldn't execute cd dir && make in system(), so I in essence ran that in a batch file. Instead of forcing the user to specify additional information (like path to NMake), I opted to make this batch file emulate make, without dependencies. === CreateTclIndex === On windows, createTclIndex is a batch file that calls itclsh on the directory where the tcl files are. === Installation === A SCIRun installation requires scirun.exe, the SCIRun dlls, the thirdparty DLLs (and the CRT DLLs), all the TCL and XML files in their relative structure. Since scirun sets up the environment with a hardcoded objdir and srcdir, I (with an installer) set up registry variables to override the location. So I have <pre> SCIRun src Core GUI/tcl files with tclIndex Dataflow GUI/tcl files with tclIndex XML/xml files Packages/Teem,Biopse,etc. with tcl and xml files in Dataflow/{GUI,XML} bin on-the-fly-libs (see below) scirun.exe All the DLLs (including CRT) </pre> Then IF you support dynamic compilation, you need to supply a million headers (which ones they are, I'm not sure) in src in their paths, and then find a way to have the user specify the path to the compiler (THIS IS NOT DONE YET). If you don't support dynamic compilation, you need to turn it off by setting the CMake ENABLE_DYNAMIC_COMPILATION to off. Optionally you can distribute as many on-the-fly-libs as you want in on-the-fly-libs. 5084 5083 2007-12-17T21:55:52Z Worthen 39 wikitext text/x-wiki This is a document hoping to document any windows-specific issues seen in the last few years. == DLL Programming == Perhaps the most painful part of maintaining a software for package is interfacing with DLLs. Basically, it comes down to: Every symbol in a DLL you want access to in another DLL (or the main exe) needs to be marked with __declspec(dllexport), and every symbol you need to read from another DLL needs to be marked with __declspec(dllimport). === Shortcut === In SCIRun, this system is shortcut with the SCISHARE macro, which is typically used in header files so it can be imported and exported. The shortcut is created by saying “If I’m build XXX DLL, then make everything that says ‘SCISHARE’ that is part of that library dllexport. Otherwise make it be dllimport. We control that statement via the share.h include file. Here is an example: <pre> #undef SCISHARE #if defined(_WIN32 ) && !defined(BUILD_SCIRUN_STATIC) && defined(BUILD_Core_Thread) # define SCISHARE __declspec(dllexport) #else # define SCISHARE #endif </pre> and we in any Thread .h file, include share.h. Although, notice that <Core/Thread/share.h> is always the last thing included. This is because Thread.h could include Exception.h, which could include its own share.h, so Thread’s SCISHARE would need to be reset. Then we need to tell the make system that when building Thread source files, to define BUILD_Core_Thread, which you can probably see at most of the SCIRun CMakeLists.txt files. === Placement === The most common and easy way to do this is to export/import an entire class. To do this, do: <pre> class SCISHARE Thread { … }; </pre> Global functions: <pre> SCISHARE void doJunk(); </pre> Global variables: <pre> SCISHARE PackageDB* packageDB; </pre> (this will often be marked with an extern) With global variables it is often the case to define it in a .cc files and reference it in a .cc file. In this case, you must fully qualify it: .cc file defining: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllexport) #endif SCISHARE int dude; </pre> .cc file using: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllimport) #endif SCISHARE extern int dude; </pre> When NOT to do it Never SCISHARE templated code or inlines. If there is an inline function inside a class, it’s still fine to SCISHARE the entire class. === Cygwin/MinGW compilers === If you ever decide to use these again, you should be aware that you cannot SCISHARE an entire class. There are, however, compiler options to export all symbols, but with this option, you still have to mark global variables. A side note about cygwin: if you don’t want to depend on cyg1.dll, compile with –mno-cygwin. == Finding DLLs == Windows has no LD_LIBRARY_PATH and no -rpath path storing. Windows finds DLLs in the following order: <ul> <li> directory of the executable <li> a directory in the PATH variable <li> windows system directory </ul> OR if the DLL was linked in via a manifest, it will look in a specific location. == CMake's location of binary files == CMake, as per a visual studio convention, creates a bindir/Debug and/or a bindir/Release depending on what you make. This is because one project/solution will let you select debug or release in the same configuration but output in different directories. However, because of Dynamic Compilation, we are restricted to one mode, since at code time, there is no way to differentiate among the configurations at code time. Also, there are cases when scirun expects output files (like in the case of convert/utils) to not be in the release/debug dir, but in the bin dir. In these cases, there are CMake rules to copy these programs to the correct location. == Windows system calls == If you use a system call, it’s going to different on windows. Please keep this in mind if adding system calls to your code. If you don’t know the windows equivalent, please ask somebody who does (or who can figure it out quickly), and please do this before committing your code. == C Runtime Libraries == Windows has basically two methods of running C runtime code – static or DLL. The general rule is to pick one and make sure that every single library in your application is using it. I believe it’s okay to mix versions of the same type (ala 2003 vs. 2005) as long as there not debug. I don’t recommend it if you can avoid it, though. === Compiler Options === <ul> <li>/MD – dynamic CRT – most common, especially among apps with lots of DLLs <li>/MT – static CRT <li>/MDd – dynamic debug CRT – don’t distribute apps with this (it’s illegal). <li>/MTd – static debug CRT </ul> So you’ll notice every release of Seg3D has come with a msvcr71.dll and msvcp71.dll. These are the C runtime libraries. I could have made static ones, but to do so I would have had to hack ITK’s make system to do /MT instead of /MD, and that would just confuse everybody. === Visual Studio 2005 CRT === Starting with Visual Studio 2005, Visual Studio has linked against the CRT with a manifest. This basically says “look for this version of a DLL in this place”. I have yet to discover how to distribute msvcr80.dll such that the installed app on a different machine will identify it. Once this is discovered, we can stop using VS 2003 altogether. == OpenGL on windows == OpenGL is a little different on windows. On Windows XP and earlier, compile-time functionality is locked to version 1.1, and on Vista it is (I believe) 1.4. If you want greater functionality, you need to query its address with extensions. Glew is highly recommended, as you are probably already are using it to determine available opengl functionality in unix programs. If OpenGL comes with less functionality than expected, and futher digging reveals that you have “Microsoft OpenGL 1.1”, you probably need to upgrade your video card driver. Microsoft OpenGL on windows is bypassed via some client channel set up by your video driver. == Hash_map == As hash_map is not standard, the implementation is slightly different on windows. See the <pre> #if defined(__ECC) || defined(_MSC_VER) </pre> sections in SCIRun/src/Core/Datatypes == Quirky macro expansion == If you don't want the windows compiler to yell at you about using min and max as variables or function names, you need to define NOMINMAX on the command line. (This happens in SCIRun's root CMakeLists.txt file). These become macros when you include stdlib.h otherwise. If you don't want the windows compiler to yell at you for using vars or functions called rad1, rad2, ..., grp1, grp2, ..., you need to define WIN32_LEAN_AND_MEAN on the command line. These are macros that happen when dlgs.h is included, which is included from windows.h unless you define WIN32_LEAN_AND_MEAN. == Solutions and Projects == Instead of constructing Makefiles, Visual Studio uses Solutions and Projects. A solution is a runtime environment containing one or more projects. You can open it up in Visual Studio, or compile it on the command line: <pre> devenv /build solution-file or devenv /build solution-file /project project-file </pre> In the case of the VS Express, you can use VCExpress instead of devenv. == Unix features not available on windows == Neither fork nor any derivative of it exists on windows. Sorry. There are a variety of CreateProcess or SpawnProcess functions which are helpful in executing external jobs, but no fork. == Installers == I’ve played with a variety of installers. They’re all pretty straightforward – I am using Inno Setup right now, and have an example script file checked into the Seg3D/scripts directory. I had some problems using the MSI installer (that comes with Visual Studio) on several machines – it just crashes when the wizard closes and it starts to do real work. Then again, Inno failed on a machine as well. Googling the error messages didn’t provide much insight, it blamed the problem on viruses and such. == Windows Thirdparty == The Windows thirdparty is not (presently) integrated into the thirdparty install script. Instead do the following: 1) Download the thirdparty source, currently in http://www.sci.utah.edu/~worthen/3P/3P-win-source.zip. 2) Open the thirdparty.sln or thirdparty.2005.sln. Everything with VS 2005 has 2005 appended. 3) Choose either Debug, Release, StaticDebug, or StaticRelease, in either VS 2003 or 2005, and select Build from the Build menu. 4) The resulting package will be in debug, release, static-debug, or static-release (with an 05 appended if you used 2005). 5) Point SCIRun at that directory, or zip or copy it wherever you want. (you can do the same thing on unix if you follow the right set of instructions, but nobody believes me.) Constructing the package was kind of a pain. If stuff gets added to thirdparty, each package will have to be added to this solution as its own project. Some of the packages came with their own project (like wx widgets, teem, freetype, zlib, and png do), and some don’t (like all of tcl). Adding the right files has been difficult, but once added, you never have to do it again (unless you upgrade your tcl version or something). == Windows shell (batch) programs, and system() command == Windows shells do not operate like sh or tcsh. Many features are unavailable, like back-quote evaulation and '&&' to execute a second command. Environment variables are referenced with %VAR%. For more information on batch files, you can see [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true MS batch file docs] As in other OSs, the system command executes one command is if it were in the shell. == Windows filesystem == Windows files are set up as follows: <drive letter>:dir1\dir2\dir with space\file1. where a given drive letter is a mount point. That being said, MOST windows system calls function correctly with either / or \, and the drive letter and : may be omitted if the file you're accessing is on the current drive. There are however, a few system calls that require \, and the primary one that comes to mind is mkdir. For conversion between unix and windows, there are convertToWindowsPath and convertToUnixPath functions in Core/Util/FileUtils. I recommend converting everything to a Unix path and using a windows path where necessary - primarily because having \ in a string has been known to be treated as an escape character when interpreting the string literally. == SCIRun-specific == === Dynamic compilation === With windows, I needed to execute a separate process to run dynamic compilation, as I couldn't execute cd dir && make in system(), so I in essence ran that in a batch file. Instead of forcing the user to specify additional information (like path to NMake), I opted to make this batch file emulate make, without dependencies. === CreateTclIndex === On windows, createTclIndex is a batch file that calls itclsh on the directory where the tcl files are. === Installation === A SCIRun installation requires scirun.exe, the SCIRun dlls, the thirdparty DLLs (and the CRT DLLs), all the TCL and XML files in their relative structure. Since scirun sets up the environment with a hardcoded objdir and srcdir, I (with an installer) set up registry variables to override the location. So I have <pre> SCIRun src Core GUI/tcl files with tclIndex Dataflow GUI/tcl files with tclIndex XML/xml files Packages/Teem,Biopse,etc. with tcl and xml files in Dataflow/{GUI,XML} bin on-the-fly-libs (see below) scirun.exe All the DLLs (including CRT) </pre> Then IF you support dynamic compilation, you need to supply a million headers (which ones they are, I'm not sure) in src in their paths, and then find a way to have the user specify the path to the compiler (THIS IS NOT DONE YET). If you don't support dynamic compilation, you need to turn it off by setting the CMake ENABLE_DYNAMIC_COMPILATION to off. Optionally you can distribute as many on-the-fly-libs as you want in on-the-fly-libs. 5086 5084 2007-12-21T21:45:13Z Worthen 39 wikitext text/x-wiki This is a document hoping to document any windows-specific issues seen in the last few years. == DLL Programming == Perhaps the most painful part of maintaining a software for package is interfacing with DLLs. Basically, it comes down to: Every symbol in a DLL you want access to in another DLL (or the main exe) needs to be marked with __declspec(dllexport), and every symbol you need to read from another DLL needs to be marked with __declspec(dllimport). === Shortcut === In SCIRun, this system is shortcut with the SCISHARE macro, which is typically used in header files so it can be imported and exported. The shortcut is created by saying “If I’m build XXX DLL, then make everything that says ‘SCISHARE’ that is part of that library dllexport. Otherwise make it be dllimport. We control that statement via the share.h include file. Here is an example: <pre> #undef SCISHARE #if defined(_WIN32 ) && !defined(BUILD_SCIRUN_STATIC) && defined(BUILD_Core_Thread) # define SCISHARE __declspec(dllexport) #else # define SCISHARE #endif </pre> and we in any Thread .h file, include share.h. Although, notice that <Core/Thread/share.h> is always the last thing included. This is because Thread.h could include Exception.h, which could include its own share.h, so Thread’s SCISHARE would need to be reset. Then we need to tell the make system that when building Thread source files, to define BUILD_Core_Thread, which you can probably see at most of the SCIRun CMakeLists.txt files. === Placement === The most common and easy way to do this is to export/import an entire class. To do this, do: <pre> class SCISHARE Thread { … }; </pre> Global functions: <pre> SCISHARE void doJunk(); </pre> Global variables: <pre> SCISHARE PackageDB* packageDB; </pre> (this will often be marked with an extern) With global variables it is often the case to define it in a .cc files and reference it in a .cc file. In this case, you must fully qualify it: .cc file defining: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllexport) #endif SCISHARE int dude; </pre> .cc file using: <pre> #ifdef _WIN32 # define SCISHARE __declspec(dllimport) #endif SCISHARE extern int dude; </pre> When NOT to do it Never SCISHARE templated code or inlines. If there is an inline function inside a class, it’s still fine to SCISHARE the entire class. === Cygwin/MinGW compilers === If you ever decide to use these again, you should be aware that you cannot SCISHARE an entire class. There are, however, compiler options to export all symbols, but with this option, you still have to mark global variables. A side note about cygwin: if you don’t want to depend on cyg1.dll, compile with –mno-cygwin. == Finding DLLs == Windows has no LD_LIBRARY_PATH and no -rpath path storing. Windows finds DLLs in the following order: <ul> <li> directory of the executable <li> a directory in the PATH variable <li> windows system directory </ul> OR if the DLL was linked in via a manifest, it will look in a specific location. == CMake's location of binary files == CMake, as per a visual studio convention, creates a bindir/Debug and/or a bindir/Release depending on what you make. This is because one project/solution will let you select debug or release in the same configuration but output in different directories. However, because of Dynamic Compilation, we are restricted to one mode, since at code time, there is no way to differentiate among the configurations at code time. Also, there are cases when scirun expects output files (like in the case of convert/utils) to not be in the release/debug dir, but in the bin dir. In these cases, there are CMake rules to copy these programs to the correct location. == Windows system calls == If you use a system call, it’s going to different on windows. Please keep this in mind if adding system calls to your code. If you don’t know the windows equivalent, please ask somebody who does (or who can figure it out quickly), and please do this before committing your code. == C Runtime Libraries == Windows has basically two methods of running C runtime code – static or DLL. The general rule is to pick one and make sure that every single library in your application is using it. I believe it’s okay to mix versions of the same type (ala 2003 vs. 2005) as long as there not debug. I don’t recommend it if you can avoid it, though. === Compiler Options === <ul> <li>/MD – dynamic CRT – most common, especially among apps with lots of DLLs <li>/MT – static CRT <li>/MDd – dynamic debug CRT – don’t distribute apps with this (it’s illegal). <li>/MTd – static debug CRT </ul> So you’ll notice every release of Seg3D has come with a msvcr71.dll and msvcp71.dll. These are the C runtime libraries. I could have made static ones, but to do so I would have had to hack ITK’s make system to do /MT instead of /MD, and that would just confuse everybody. === Visual Studio 2005 CRT === Starting with Visual Studio 2005, Visual Studio has linked against the CRT with a manifest. This basically says “look for this version of a DLL in this place”. I have yet to discover how to distribute msvcr80.dll such that the installed app on a different machine will identify it. Once this is discovered, we can stop using VS 2003 altogether. == OpenGL on windows == OpenGL is a little different on windows. On Windows XP and earlier, compile-time functionality is locked to version 1.1, and on Vista it is (I believe) 1.4. If you want greater functionality, you need to query its address with extensions. Glew is highly recommended, as you are probably already are using it to determine available opengl functionality in unix programs. If OpenGL comes with less functionality than expected, and futher digging reveals that you have “Microsoft OpenGL 1.1”, you probably need to upgrade your video card driver. Microsoft OpenGL on windows is bypassed via some client channel set up by your video driver. == Hash_map == As hash_map is not standard, the implementation is slightly different on windows. See the <pre> #if defined(__ECC) || defined(_MSC_VER) </pre> sections in SCIRun/src/Core/Datatypes == Quirky macro expansion == If you don't want the windows compiler to yell at you about using min and max as variables or function names, you need to define NOMINMAX on the command line. (This happens in SCIRun's root CMakeLists.txt file). These become macros when you include stdlib.h otherwise. If you don't want the windows compiler to yell at you for using vars or functions called rad1, rad2, ..., grp1, grp2, ..., you need to define WIN32_LEAN_AND_MEAN on the command line. These are macros that happen when dlgs.h is included, which is included from windows.h unless you define WIN32_LEAN_AND_MEAN. == Solutions and Projects == Instead of constructing Makefiles, Visual Studio uses Solutions and Projects. A solution is a runtime environment containing one or more projects. You can open it up in Visual Studio, or compile it on the command line: <pre> devenv /build solution-file or devenv /build solution-file /project project-file </pre> In the case of the VS Express, you can use VCExpress instead of devenv. == Unix features not available on windows == Neither fork nor any derivative of it exists on windows. Sorry. There are a variety of CreateProcess or SpawnProcess functions which are helpful in executing external jobs, but no fork. == Installers == I’ve played with a variety of installers. They’re all pretty straightforward – I am using Inno Setup right now, and have an example script file checked into the Seg3D/scripts directory. I had some problems using the MSI installer (that comes with Visual Studio) on several machines – it just crashes when the wizard closes and it starts to do real work. Then again, Inno failed on a machine as well. Googling the error messages didn’t provide much insight, it blamed the problem on viruses and such. == Windows Thirdparty == The Windows thirdparty is not (presently) integrated into the thirdparty install script. Instead do the following: 1) Download the thirdparty source, currently in http://www.sci.utah.edu/~worthen/3P/3P-win-source.zip. 2) Open the thirdparty.sln or thirdparty.2005.sln. Everything with VS 2005 has 2005 appended. 3) Choose either Debug, Release, StaticDebug, or StaticRelease, in either VS 2003 or 2005, and select Build from the Build menu. 4) The resulting package will be in debug, release, static-debug, or static-release (with an 05 appended if you used 2005). 5) Point SCIRun at that directory, or zip or copy it wherever you want. (you can do the same thing on unix if you follow the right set of instructions, but nobody believes me.) Constructing the package was kind of a pain. If stuff gets added to thirdparty, each package will have to be added to this solution as its own project. Some of the packages came with their own project (like wx widgets, teem, freetype, zlib, and png do), and some don’t (like all of tcl). Adding the right files has been difficult, but once added, you never have to do it again (unless you upgrade your tcl version or something). == Windows shell (batch) programs, and system() command == Windows shells do not operate like sh or tcsh. Many features are unavailable, like back-quote evaulation and '&&' to execute a second command. Environment variables are referenced with %VAR%. For more information on batch files, you can see [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true MS batch file docs] As in other OSs, the system command executes one command is if it were in the shell. == Windows filesystem == Windows files are set up as follows: <drive letter>:dir1\dir2\dir with space\file1. where a given drive letter is a mount point. That being said, MOST windows system calls function correctly with either / or \, and the drive letter and : may be omitted if the file you're accessing is on the current drive. There are however, a few system calls that require \, and the primary one that comes to mind is mkdir. For conversion between unix and windows, there are convertToWindowsPath and convertToUnixPath functions in Core/Util/FileUtils. I recommend converting everything to a Unix path and using a windows path where necessary - primarily because having \ in a string has been known to be treated as an escape character when interpreting the string literally. == SCIRun-specific == === Dynamic compilation === With windows, I needed to execute a separate process to run dynamic compilation, as I couldn't execute cd dir && make in system(), so I in essence ran that in a batch file. Instead of forcing the user to specify additional information (like path to NMake), I opted to make this batch file emulate make, without dependencies. === CreateTclIndex === On windows, createTclIndex is a batch file that calls itclsh on the directory where the tcl files are. === Installation === A SCIRun installation requires scirun.exe, the SCIRun dlls, the thirdparty DLLs (and the CRT DLLs), all the TCL and XML files in their relative structure. Since scirun sets up the environment with a hardcoded objdir and srcdir, I (with an installer) set up registry variables to override the location. So I have <pre> SCIRun src Core GUI/tcl files with tclIndex Dataflow GUI/tcl files with tclIndex XML/xml files Packages/Teem,Biopse,etc. with tcl and xml files in Dataflow/{GUI,XML} bin on-the-fly-libs (see below) scirun.exe All the DLLs (including CRT) </pre> Then IF you support dynamic compilation, you need to supply a million headers (which ones they are, I'm not sure) in src in their paths, and then find a way to have the user specify the path to the compiler (THIS IS NOT DONE YET). If you don't support dynamic compilation, you need to turn it off by setting the CMake ENABLE_DYNAMIC_COMPILATION to off. Optionally you can distribute as many on-the-fly-libs as you want in on-the-fly-libs. == Preparing for 64bit == I don't know that much about 64bit windows, but from what I've read, it appears that that main concerns are: <ul> <li> making sure you know how big your sizes are (long, size_t, etc.) It seems that this is already being addressed in 64bit linux <li> In 64bit windows, the SetWindowLong and GetWindowLong in Core/Geom/Win32OpenGLContext should be SetWindowLongPtr and GetWindowLongPtr. </ul> CIBC:Project:APP Interface dev 0 2583 5080 2007-12-11T22:15:23Z Mjc 35 wikitext text/x-wiki The following need code adapted from their module equivalents : * ./DataIO/WriteBundleAlg.cc * ./DataIO/WritePathAlg.cc * ./DataIO/WriteColorMap2DAlg.cc * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/WriteColorMapAlg.cc * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadMatrixAlg.cc * ./DataIO/WriteStringAlg.cc * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadBundleAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc * ./DataIO/WriteMatrixAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/AppendMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/SortMatrixAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/SplitFileNameAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/CreateStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/JoinStringsAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./MiscField/SetFieldPropertyAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Converters/ConvertMatrixToStringAlg.cc * ./Time/TimeControlsAlg.cc 5085 5080 2007-12-21T17:54:22Z Bigler 52 WriteStringAlg done wikitext text/x-wiki The following need code adapted from their module equivalents : * ./DataIO/WriteBundleAlg.cc * ./DataIO/WritePathAlg.cc * ./DataIO/WriteColorMap2DAlg.cc * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/WriteColorMapAlg.cc * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadMatrixAlg.cc <strike> * ./DataIO/WriteStringAlg.cc </strike> * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadBundleAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc * ./DataIO/WriteMatrixAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/AppendMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/SortMatrixAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/SplitFileNameAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/CreateStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/JoinStringsAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./MiscField/SetFieldPropertyAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Converters/ConvertMatrixToStringAlg.cc * ./Time/TimeControlsAlg.cc 5087 5085 2008-01-05T14:03:41Z Bigler 52 Finished WriteMatrixAlg wikitext text/x-wiki The following need code adapted from their module equivalents : * ./DataIO/WriteBundleAlg.cc * ./DataIO/WritePathAlg.cc * ./DataIO/WriteColorMap2DAlg.cc * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/WriteColorMapAlg.cc * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadMatrixAlg.cc <strike> * ./DataIO/WriteStringAlg.cc </strike> * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadBundleAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteMatrixAlg.cc </strike> * ./NewField/JoinFieldsAlg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/AppendMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/SortMatrixAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/SplitFileNameAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/CreateStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/JoinStringsAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./MiscField/SetFieldPropertyAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Converters/ConvertMatrixToStringAlg.cc * ./Time/TimeControlsAlg.cc 5088 5087 2008-01-07T23:26:42Z Bigler 52 Finished WriteBundleAlg wikitext text/x-wiki The following need code adapted from their module equivalents : <strike> * ./DataIO/WriteBundleAlg.cc </strike> * ./DataIO/WritePathAlg.cc * ./DataIO/WriteColorMap2DAlg.cc * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/WriteColorMapAlg.cc * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadMatrixAlg.cc <strike> * ./DataIO/WriteStringAlg.cc </strike> * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadBundleAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteMatrixAlg.cc </strike> * ./NewField/JoinFieldsAlg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/AppendMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/SortMatrixAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/SplitFileNameAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/CreateStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/JoinStringsAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./MiscField/SetFieldPropertyAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Converters/ConvertMatrixToStringAlg.cc * ./Time/TimeControlsAlg.cc 5089 5088 2008-01-08T18:44:13Z Bigler 52 Marked modules James is working on wikitext text/x-wiki The following need code adapted from their module equivalents : <strike> * ./DataIO/WriteBundleAlg.cc (James) </strike> * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/WriteColorMapAlg.cc * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadMatrixAlg.cc <strike> * ./DataIO/WriteStringAlg.cc (James) </strike> * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadBundleAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteMatrixAlg.cc (James) </strike> * ./NewField/JoinFieldsAlg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/AppendMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/SortMatrixAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/SplitFileNameAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/CreateStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/JoinStringsAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./MiscField/SetFieldPropertyAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Converters/ConvertMatrixToStringAlg.cc * ./Time/TimeControlsAlg.cc 5090 5089 2008-01-08T23:16:05Z Bigler 52 Finished WritePathAlg. Added note. wikitext text/x-wiki The following need code adapted from their module equivalents : <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) </strike> * ./DataIO/WriteColorMap2DAlg.cc * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/WriteColorMapAlg.cc * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadMatrixAlg.cc <strike> * ./DataIO/WriteStringAlg.cc (James) </strike> * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadBundleAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteMatrixAlg.cc (James) </strike> * ./NewField/JoinFieldsAlg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/AppendMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/SortMatrixAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/SplitFileNameAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/CreateStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/JoinStringsAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./MiscField/SetFieldPropertyAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Converters/ConvertMatrixToStringAlg.cc * ./Time/TimeControlsAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5091 5090 2008-01-11T03:54:17Z Bigler 52 Tagging my name on the WriteColorMap* Algs. wikitext text/x-wiki The following need code adapted from their module equivalents : <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) </strike> * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadMatrixAlg.cc <strike> * ./DataIO/WriteStringAlg.cc (James) </strike> * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadBundleAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteMatrixAlg.cc (James) </strike> * ./NewField/JoinFieldsAlg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/AppendMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/SortMatrixAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/SplitFileNameAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/CreateStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/JoinStringsAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./MiscField/SetFieldPropertyAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Converters/ConvertMatrixToStringAlg.cc * ./Time/TimeControlsAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5092 5091 2008-01-11T04:42:19Z Bigler 52 Alphebetized list. Finished WriteColorMap* Algs. wikitext text/x-wiki The following need code adapted from their module equivalents : * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc * ./Converters/ConvertMatrixToStringAlg.cc * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc * ./DataIO/ReadBundleAlg.cc * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc * ./Time/TimeControlsAlg.cc * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5093 5092 2008-01-11T14:55:38Z Bigler 52 Some formatting wikitext text/x-wiki The following need code adapted from their module equivalents : === Bundle === * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc === ChangeFieldData === * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc === ChangeMesh === * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc === Converters === * ./Converters/ConvertMatrixToStringAlg.cc === DataArrayMath === * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc === DataIO === * ./DataIO/ReadBundleAlg.cc * ./DataIO/ReadColorMap2DAlg.cc * ./DataIO/ReadColorMapAlg.cc * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc * ./DataIO/ReadPathAlg.cc * ./DataIO/ReadStringAlg.cc * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> === Math === * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc === MiscField === * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc === NewField === * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc === String === * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc === Time === * ./Time/TimeControlsAlg.cc === Visualization === * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5094 5093 2008-01-11T15:18:45Z Bigler 52 /* DataIO */ Finished ReadBundleAlg. Assigned new. wikitext text/x-wiki The following need code adapted from their module equivalents : === Bundle === * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc === ChangeFieldData === * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc === ChangeMesh === * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc === Converters === * ./Converters/ConvertMatrixToStringAlg.cc === DataArrayMath === * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc === DataIO === <strike> * ./DataIO/ReadBundleAlg.cc (James) </strike> * ./DataIO/ReadColorMap2DAlg.cc (James) * ./DataIO/ReadColorMapAlg.cc (James) * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc (James) * ./DataIO/ReadPathAlg.cc (James) * ./DataIO/ReadStringAlg.cc (James) * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> === Math === * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc === MiscField === * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc === NewField === * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc === String === * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc === Time === * ./Time/TimeControlsAlg.cc === Visualization === * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5096 5094 2008-01-17T14:25:31Z Bigler 52 /* DataIO */ Finished ReadColorMap* wikitext text/x-wiki The following need code adapted from their module equivalents : === Bundle === * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc === ChangeFieldData === * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc === ChangeMesh === * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc === Converters === * ./Converters/ConvertMatrixToStringAlg.cc === DataArrayMath === * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc === DataIO === <strike> * ./DataIO/ReadBundleAlg.cc (James) * ./DataIO/ReadColorMap2DAlg.cc (James) * ./DataIO/ReadColorMapAlg.cc (James) </strike> * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc (James) * ./DataIO/ReadPathAlg.cc (James) * ./DataIO/ReadStringAlg.cc (James) * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> === Math === * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc === MiscField === * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc === NewField === * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc === String === * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc === Time === * ./Time/TimeControlsAlg.cc === Visualization === * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5097 5096 2008-02-01T20:09:58Z Mjc 35 /* ChangeFieldData */ wikitext text/x-wiki The following need code adapted from their module equivalents : === Bundle === * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc === ChangeFieldData === * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc * ./ChangeFieldData/CalculateGradientsAlg.cc(Marty) * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc === ChangeMesh === * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc === Converters === * ./Converters/ConvertMatrixToStringAlg.cc === DataArrayMath === * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc === DataIO === <strike> * ./DataIO/ReadBundleAlg.cc (James) * ./DataIO/ReadColorMap2DAlg.cc (James) * ./DataIO/ReadColorMapAlg.cc (James) </strike> * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc (James) * ./DataIO/ReadPathAlg.cc (James) * ./DataIO/ReadStringAlg.cc (James) * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> === Math === * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc === MiscField === * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc === NewField === * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc === String === * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc === Time === * ./Time/TimeControlsAlg.cc === Visualization === * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5098 5097 2008-02-01T20:11:23Z Mjc 35 /* ChangeFieldData */ wikitext text/x-wiki The following need code adapted from their module equivalents : === Bundle === * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc === ChangeFieldData === * ./ChangeFieldData/ApplyMappingMatrixAlg.cc * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc <strike> * ./ChangeFieldData/CalculateGradientsAlg.cc(Marty) </strike> * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc === ChangeMesh === * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc === Converters === * ./Converters/ConvertMatrixToStringAlg.cc === DataArrayMath === * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc === DataIO === <strike> * ./DataIO/ReadBundleAlg.cc (James) * ./DataIO/ReadColorMap2DAlg.cc (James) * ./DataIO/ReadColorMapAlg.cc (James) </strike> * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc (James) * ./DataIO/ReadPathAlg.cc (James) * ./DataIO/ReadStringAlg.cc (James) * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> === Math === * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc === MiscField === * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc === NewField === * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc === String === * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc === Time === * ./Time/TimeControlsAlg.cc === Visualization === * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? User:Amkeller 2 2584 5095 2008-01-15T21:31:00Z Erikj 2 wikitext text/x-wiki Annette Keller Affiliation: NIH Center for Information Technology About Me: NIH/CIT Telemedicine & Applied Imaging Section CIBC:ImageVis3D:Plan 0 2586 5102 2008-02-28T14:23:23Z Macleod 3 wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality within SCIRun for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as Seg3D and map3d and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == The goals of ImageVis3D include the following: # Convert and fix BioImage functionality in new framework * todo: create a pipeline of features as master plan * remove things from dataflow * fix broken features: 2D Xfer function editor, painting in slices * UI layout: ** include stack of operations and allow vis at different point ** do we want to have layers (like Seg3D) as the metaphor? Yes, will allow us to use Seg3D code ** incluce both a master list of controls as well as a way to alter groups or individual panes ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read ** may have to bypass ITK file reading to to pre-reading and then give user choices * feature list: ** filters: median, Gaussian ** resampling of volume data ** crop **histogram # Expose existing SCIRun functionality * import capablities * saving out volumes from cropped, filters, resampled volumes * saving images and movies # Enhance functionality * save and load sessions * better transfer function controls # New functionality * multi-field vis; with and without locking of controls * allow locking of features, perhaps groupwise in scaling * maintain state for each pane * using two fields together for 2D transfer function * time dependent data * adding annotations, landmarks, attach notes * support for large scale data, * support for gain field correction == Implementation == == Results == 5103 5102 2008-03-05T22:40:06Z Macleod 3 wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality within SCIRun for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as Seg3D and map3d and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == The goals of ImageVis3D include the following: # Convert and fix BioImage functionality in new framework * todo: create a pipeline of features as master plan * remove things from dataflow * fix broken features: 2D Xfer function editor, painting in slices * UI layout: ** include stack of operations and allow vis at different point ** do we want to have layers (like Seg3D) as the metaphor? Yes, will allow us to use Seg3D code ** incluce both a master list of controls as well as a way to alter groups or individual panes ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read ** may have to bypass ITK file reading to to pre-reading and then give user choices * feature list: ** filters: median, Gaussian ** resampling of volume data ** crop **histogram # Expose existing SCIRun functionality * import capablities * saving out volumes from cropped, filters, resampled volumes * saving images and movies # Enhance functionality * save and load sessions * better transfer function controls # New functionality * multi-field vis; with and without locking of controls * allow locking of features, perhaps groupwise in scaling * maintain state for each pane * using two fields together for 2D transfer function * time dependent data * adding annotations, landmarks, attach notes * support for large scale data, * support for gain field correction == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] == Implementation == == Results == CIBC:Project:ImageVis3D:Meetings:2008-02-28 0 2587 5104 2008-03-05T22:42:29Z Macleod 3 wikitext text/x-wiki <p>ImageVis3D Team Meeting </p> <p>February 28, 2008 </p> <p>James, Dave, Jeroen, Rob, Jens, David, Claudio, Emanualle </p> <ol> <li>VisTrails presentation <ul> <li>Claudio and Emanuelle </li></ul> </li><li>ImageVis3D presentations (James) </li><li>Discussion <ul> <li>does the complexity of what we need warrant the use of VisTrails? <ul> <li>provenance: how much to we have to keep track of? Is it enough to capture a compact state? </li></ul> </li><li>Paraview: check it out; new design, QT and scriptable in python </li></ul> </li><li>Plan: go to Vis meeting in Friday at 12:00 to see Jens demo his software. </li></ol> 5105 5104 2008-03-05T22:42:53Z Macleod 3 wikitext text/x-wiki <p>ImageVis3D Team Meeting </p> <p>February 28, 2008 </p> <p>James, Dave, Jeroen, Rob, Jens, David, Claudio, Emanualle </p> <ol> <li>VisTrails presentation <ul> <li>Claudio and Emanuelle </li></ul> </li><li>ImageVis3D presentations (James) </li><li>Discussion <ul> <li>does the complexity of what we need warrant the use of VisTrails? <ul> <li>provenance: how much to we have to keep track of? Is it enough to capture a compact state? </li></ul> </li><li>Paraview: check it out; new design, QT and scriptable in python </li></ul> </li><li>Plan: go to Vis meeting in Friday at 12:00 to see Jens demo his software. </li></ol> CIBC:Project:ImageVis3D:Meetings:2008-02-28 0 2587 5106 5105 2008-03-05T23:06:04Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Team Meeting == '''February 28, 2008''' <p>James, Dave, Jeroen, Rob, Jens, David, Claudio, Emanuele </p> <ol> <li>VisTrails presentation <ul> <li>Claudio and Emanuele </li></ul> </li><li>ImageVis3D presentations (James) </li><li>Discussion <ul> <li>does the complexity of what we need warrant the use of VisTrails? <ul> <li>provenance: how much to we have to keep track of? Is it enough to capture a compact state? </li></ul> </li><li>Paraview: check it out; new design, QT and scriptable in python </li></ul> </li><li>Plan: go to Vis meeting in Friday at 12:00 to see Jens demo his software. </li></ol> 5107 5106 2008-03-06T19:38:58Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Team Meeting == '''February 28, 2008''' <p>James, Dave, Jeroen, Rob, Jens, David, Claudio, Emanuele </p> <ol> <li>VisTrails presentation <ul> <li>Claudio and Emanuele </li></ul> </li><li>ImageVis3D presentations (James) </li><li>Discussion <ul> <li>does the complexity of what we need warrant the use of VisTrails? <ul> <li>provenance: how much to we have to keep track of? Is it enough to capture a compact state? </li></ul> </li><li>Paraview: check it out; new design, QT and scriptable in python </li></ul> </li><li>Plan: go to Vis meeting in Friday at 12:00 to see Jens demo his software. </li></ol> 5144 5107 2008-04-15T22:18:06Z Macleod 3 /* ImageVis3D Team Meeting */ wikitext text/x-wiki ==ImageVis3D Team Meeting == '''February 28, 2008''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] <p>James, Dave, Jeroen, Rob, Jens, David, Claudio, Emanuele </p> <ol> <li>VisTrails presentation <ul> <li>Claudio and Emanuele </li></ul> </li><li>ImageVis3D presentations (James) </li><li>Discussion <ul> <li>does the complexity of what we need warrant the use of VisTrails? <ul> <li>provenance: how much to we have to keep track of? Is it enough to capture a compact state? </li></ul> </li><li>Paraview: check it out; new design, QT and scriptable in python </li></ul> </li><li>Plan: go to Vis meeting in Friday at 12:00 to see Jens demo his software. </li></ol> [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] CIBC:ImageVis3D:Plan 0 2586 5108 5103 2008-03-06T19:41:28Z Macleod 3 /* Meeting notes */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality within SCIRun for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as Seg3D and map3d and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == The goals of ImageVis3D include the following: # Convert and fix BioImage functionality in new framework * todo: create a pipeline of features as master plan * remove things from dataflow * fix broken features: 2D Xfer function editor, painting in slices * UI layout: ** include stack of operations and allow vis at different point ** do we want to have layers (like Seg3D) as the metaphor? Yes, will allow us to use Seg3D code ** incluce both a master list of controls as well as a way to alter groups or individual panes ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read ** may have to bypass ITK file reading to to pre-reading and then give user choices * feature list: ** filters: median, Gaussian ** resampling of volume data ** crop **histogram # Expose existing SCIRun functionality * import capablities * saving out volumes from cropped, filters, resampled volumes * saving images and movies # Enhance functionality * save and load sessions * better transfer function controls # New functionality * multi-field vis; with and without locking of controls * allow locking of features, perhaps groupwise in scaling * maintain state for each pane * using two fields together for 2D transfer function * time dependent data * adding annotations, landmarks, attach notes * support for large scale data, * support for gain field correction == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] == Implementation == == Results == 5109 5108 2008-03-06T19:41:57Z Macleod 3 /* Meeting notes */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality within SCIRun for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as Seg3D and map3d and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == The goals of ImageVis3D include the following: # Convert and fix BioImage functionality in new framework * todo: create a pipeline of features as master plan * remove things from dataflow * fix broken features: 2D Xfer function editor, painting in slices * UI layout: ** include stack of operations and allow vis at different point ** do we want to have layers (like Seg3D) as the metaphor? Yes, will allow us to use Seg3D code ** incluce both a master list of controls as well as a way to alter groups or individual panes ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read ** may have to bypass ITK file reading to to pre-reading and then give user choices * feature list: ** filters: median, Gaussian ** resampling of volume data ** crop **histogram # Expose existing SCIRun functionality * import capablities * saving out volumes from cropped, filters, resampled volumes * saving images and movies # Enhance functionality * save and load sessions * better transfer function controls # New functionality * multi-field vis; with and without locking of controls * allow locking of features, perhaps groupwise in scaling * maintain state for each pane * using two fields together for 2D transfer function * time dependent data * adding annotations, landmarks, attach notes * support for large scale data, * support for gain field correction == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] == Implementation == == Results == 5124 5109 2008-04-01T16:56:19Z Macleod 3 /* Motivation and Overview */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within SCIRun for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as Seg3D and ''map3d'' and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == The goals of ImageVis3D include the following: # Convert and fix BioImage functionality in new framework * todo: create a pipeline of features as master plan * remove things from dataflow * fix broken features: 2D Xfer function editor, painting in slices * UI layout: ** include stack of operations and allow vis at different point ** do we want to have layers (like Seg3D) as the metaphor? Yes, will allow us to use Seg3D code ** incluce both a master list of controls as well as a way to alter groups or individual panes ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read ** may have to bypass ITK file reading to to pre-reading and then give user choices * feature list: ** filters: median, Gaussian ** resampling of volume data ** crop **histogram # Expose existing SCIRun functionality * import capablities * saving out volumes from cropped, filters, resampled volumes * saving images and movies # Enhance functionality * save and load sessions * better transfer function controls # New functionality * multi-field vis; with and without locking of controls * allow locking of features, perhaps groupwise in scaling * maintain state for each pane * using two fields together for 2D transfer function * time dependent data * adding annotations, landmarks, attach notes * support for large scale data, * support for gain field correction == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] == Implementation == == Results == 5125 5124 2008-04-01T17:00:44Z Macleod 3 /* Motivation and Overview */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == The goals of ImageVis3D include the following: # Convert and fix BioImage functionality in new framework * todo: create a pipeline of features as master plan * remove things from dataflow * fix broken features: 2D Xfer function editor, painting in slices * UI layout: ** include stack of operations and allow vis at different point ** do we want to have layers (like Seg3D) as the metaphor? Yes, will allow us to use Seg3D code ** incluce both a master list of controls as well as a way to alter groups or individual panes ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read ** may have to bypass ITK file reading to to pre-reading and then give user choices * feature list: ** filters: median, Gaussian ** resampling of volume data ** crop **histogram # Expose existing SCIRun functionality * import capablities * saving out volumes from cropped, filters, resampled volumes * saving images and movies # Enhance functionality * save and load sessions * better transfer function controls # New functionality * multi-field vis; with and without locking of controls * allow locking of features, perhaps groupwise in scaling * maintain state for each pane * using two fields together for 2D transfer function * time dependent data * adding annotations, landmarks, attach notes * support for large scale data, * support for gain field correction == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] == Implementation == == Results == 5126 5125 2008-04-01T18:01:54Z Macleod 3 /* Design */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI === Feature list=== <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop **histogram <!-- --> * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * New functionality ** multi-field vis; with and without locking of controls ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** using two fields together for 2D transfer function ** time dependent data ** adding annotations, landmarks, attach notes ** support for large scale data, ** support for gain field correction ** masking and 3D painting (Jens is about to publish this) ** masking based on isosurface - Stereo projection ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets <!-- --> * Other ideas ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] == Implementation == == Results == 5127 5126 2008-04-01T18:05:17Z Macleod 3 /* Design */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop **histogram <!-- --> * New functionality ** multi-field vis; with and without locking of controls ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** using two fields together for 2D transfer function ** time dependent data ** adding annotations, landmarks, attach notes ** support for large scale data, ** support for gain field correction ** masking and 3D painting (Jens is about to publish this) ** masking based on isosurface ** stereo projection ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets <!-- --> * Other ideas ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] == Implementation == == Results == 5128 5127 2008-04-01T18:06:41Z Macleod 3 /* Meeting notes */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop **histogram <!-- --> * New functionality ** multi-field vis; with and without locking of controls ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** using two fields together for 2D transfer function ** time dependent data ** adding annotations, landmarks, attach notes ** support for large scale data, ** support for gain field correction ** masking and 3D painting (Jens is about to publish this) ** masking based on isosurface ** stereo projection ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets <!-- --> * Other ideas ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | March 26, 2008]] == Implementation == == Results == 5129 5128 2008-04-01T18:07:33Z Macleod 3 /* Meeting notes */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop **histogram <!-- --> * New functionality ** multi-field vis; with and without locking of controls ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** using two fields together for 2D transfer function ** time dependent data ** adding annotations, landmarks, attach notes ** support for large scale data, ** support for gain field correction ** masking and 3D painting (Jens is about to publish this) ** masking based on isosurface ** stereo projection ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets <!-- --> * Other ideas ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] == Implementation == == Results == 5132 5129 2008-04-01T18:52:25Z Macleod 3 /* Design */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] == Implementation == == Results == 5135 5132 2008-04-01T19:00:17Z Macleod 3 wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] == Implementation Plans== == Results == 5136 5135 2008-04-15T22:07:58Z Macleod 3 /* Meeting notes */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-15 | April 15, 2008]] == Implementation Plans== == Results == 5149 5136 2008-04-15T22:20:30Z Macleod 3 /* Meeting notes */ wikitext text/x-wiki == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-03 | April 3, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-15 | April 15, 2008]] == Implementation Plans== == Results == 5153 5149 2008-04-15T22:26:53Z Macleod 3 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-03 | April 3, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-15 | April 15, 2008]] == Implementation Plans== == Results == 5154 5153 2008-04-15T22:27:19Z Macleod 3 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-03 | April 3, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-15 | April 15, 2008]] == Implementation Plans== == Results == 5155 5154 2008-04-15T22:39:44Z Macleod 3 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader ===Functional blocks=== The design plan for this application consists of the following blocks, each assigned to one ore more members of the team: # I/O: Jens #* based on third party libraries but likely '''not''' ITK #* internal format will be NRRD and we may write NRRD versions of the file to disk in the case of large data sets # GUI: Design: all, Implementation: David #* GUI must be separated from process control and not actually necessary for the program to run and execute # Image Processing: Allen #* very basic functionality with some simple filters, cropping, subsampling, etc. # Visualization interface: Jens and Allen #* interface to the multidimensional transfer function # Rendering #* use SLIVR # Memory management: Jens #* support multiple data types #* seek high efficiency for large data sets # Master process controller: Allen #* coordinator and overall manager of the application As much as possible, each block will be separated from all others with well defined interfaces. The master process controller has the task of integrating all the pieces and really defines the complete application. [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-03 | April 3, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-15 | April 15, 2008]] == Implementation Plans== == Results == CIBC:Project:ImageVis3D:Meetings:2008-02-07 0 2588 5110 2008-03-06T19:51:30Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Meeting== Allen, James, Jeroen, Dave, Rob, David February 7, 2008 <ol> <li>Outline personnel for the team <ul> <li>important note that focus has to be on renewal and associated goals <li>that means we have to address collaborator needs <li>need to set milestones and targets </ul> <li>Goal 1: convert and fix BioImage functionality in new framework <ul> <li>todo: create a pipeline of features as master plan <li>remove things from dataflow <li>fix broken features: 2D Xfer function editor, painting in slices <li>UI layout: <ul> <li>include stack of operations and allow vis at different point <li>do we want to have layers (like Seg3D) as the metaphor? <ul> <li>yes, will allow us to use Seg3D code </ul> <li>incluce both a master list of controls as well as a way to alter groups or individual panes <li>ITK-Snap has nice interface for loading data; use this as example <ul> <li>also allow subsampling of data as we read <li>may have to bypass ITK file reading to to pre-reading and then give user choices </ul> </ul> <li>feature list: <ul> <li>filters: median, Gaussian <li>resampling of volume data <li>crop <li>histogram </ul> </ul> <li>Goal 2: expose existing SCIRun functionality <ul> <li>import capablities <li>saving out volumes from cropped, filters, resampled volumes <li>saving images and movies </ul> <li>Goal 3: enhance functionality <ul> <li>save and load sessions <li>better transfer function controls </ul> <li>Goal 4: new functionality <ul> <li>multi-field vis; with and without locking of controls <ul> <li>allow locking of features, perhaps groupwise in scaling <li>maintain state for each pane </ul> <li>using two fields together for 2D transfer function <li>time dependent data <li>adding annotations, landmarks, attach notes <li>support for large scale data, <li>support for gain field correction </ul> <li>Goals for next time: <ul> <li>key differntiating features <ul> <li>multidimensional transfer functions for great volume rendering <li>multifield vis (Amira and Osirix will do this) <li>time dependent data <li>large data (Microview will do 4GB) </ul> <li>Mockup of UI <li>Review software <ul> <li>Osirix: Allen <li>Microview: David (windows) <li>ITK Snap: James <li>Amira </ul> <li>Review of collaborator needs <ul> <li>Dave <li>Jeroen <li>Rob </ul> <li>Candidate Data sets <ul> <li>Jeroen will ask for multimodel cell data <li>torso data (CT and MRI) <li>head dataset from Fanxiang <li>Charles' data 0 </ul> </ul> </ol> 5140 5110 2008-04-15T22:15:12Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Meeting== [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Allen, James, Jeroen, Dave, Rob, David February 7, 2008 <ol> <li>Outline personnel for the team <ul> <li>important note that focus has to be on renewal and associated goals <li>that means we have to address collaborator needs <li>need to set milestones and targets </ul> <li>Goal 1: convert and fix BioImage functionality in new framework <ul> <li>todo: create a pipeline of features as master plan <li>remove things from dataflow <li>fix broken features: 2D Xfer function editor, painting in slices <li>UI layout: <ul> <li>include stack of operations and allow vis at different point <li>do we want to have layers (like Seg3D) as the metaphor? <ul> <li>yes, will allow us to use Seg3D code </ul> <li>incluce both a master list of controls as well as a way to alter groups or individual panes <li>ITK-Snap has nice interface for loading data; use this as example <ul> <li>also allow subsampling of data as we read <li>may have to bypass ITK file reading to to pre-reading and then give user choices </ul> </ul> <li>feature list: <ul> <li>filters: median, Gaussian <li>resampling of volume data <li>crop <li>histogram </ul> </ul> <li>Goal 2: expose existing SCIRun functionality <ul> <li>import capablities <li>saving out volumes from cropped, filters, resampled volumes <li>saving images and movies </ul> <li>Goal 3: enhance functionality <ul> <li>save and load sessions <li>better transfer function controls </ul> <li>Goal 4: new functionality <ul> <li>multi-field vis; with and without locking of controls <ul> <li>allow locking of features, perhaps groupwise in scaling <li>maintain state for each pane </ul> <li>using two fields together for 2D transfer function <li>time dependent data <li>adding annotations, landmarks, attach notes <li>support for large scale data, <li>support for gain field correction </ul> <li>Goals for next time: <ul> <li>key differntiating features <ul> <li>multidimensional transfer functions for great volume rendering <li>multifield vis (Amira and Osirix will do this) <li>time dependent data <li>large data (Microview will do 4GB) </ul> <li>Mockup of UI <li>Review software <ul> <li>Osirix: Allen <li>Microview: David (windows) <li>ITK Snap: James <li>Amira </ul> <li>Review of collaborator needs <ul> <li>Dave <li>Jeroen <li>Rob </ul> <li>Candidate Data sets <ul> <li>Jeroen will ask for multimodel cell data <li>torso data (CT and MRI) <li>head dataset from Fanxiang <li>Charles' data 0 </ul> </ul> </ol> [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] 5143 5140 2008-04-15T22:17:43Z Macleod 3 /* ImageVis3D Meeting */ wikitext text/x-wiki ==ImageVis3D Meeting== [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Allen, James, Jeroen, Dave, Rob, David February 7, 2008 <ol> <li>Outline personnel for the team <ul> <li>important note that focus has to be on renewal and associated goals <li>that means we have to address collaborator needs <li>need to set milestones and targets </ul> <li>Goal 1: convert and fix BioImage functionality in new framework <ul> <li>todo: create a pipeline of features as master plan <li>remove things from dataflow <li>fix broken features: 2D Xfer function editor, painting in slices <li>UI layout: <ul> <li>include stack of operations and allow vis at different point <li>do we want to have layers (like Seg3D) as the metaphor? <ul> <li>yes, will allow us to use Seg3D code </ul> <li>incluce both a master list of controls as well as a way to alter groups or individual panes <li>ITK-Snap has nice interface for loading data; use this as example <ul> <li>also allow subsampling of data as we read <li>may have to bypass ITK file reading to to pre-reading and then give user choices </ul> </ul> <li>feature list: <ul> <li>filters: median, Gaussian <li>resampling of volume data <li>crop <li>histogram </ul> </ul> <li>Goal 2: expose existing SCIRun functionality <ul> <li>import capablities <li>saving out volumes from cropped, filters, resampled volumes <li>saving images and movies </ul> <li>Goal 3: enhance functionality <ul> <li>save and load sessions <li>better transfer function controls </ul> <li>Goal 4: new functionality <ul> <li>multi-field vis; with and without locking of controls <ul> <li>allow locking of features, perhaps groupwise in scaling <li>maintain state for each pane </ul> <li>using two fields together for 2D transfer function <li>time dependent data <li>adding annotations, landmarks, attach notes <li>support for large scale data, <li>support for gain field correction </ul> <li>Goals for next time: <ul> <li>key differntiating features <ul> <li>multidimensional transfer functions for great volume rendering <li>multifield vis (Amira and Osirix will do this) <li>time dependent data <li>large data (Microview will do 4GB) </ul> <li>Mockup of UI <li>Review software <ul> <li>Osirix: Allen <li>Microview: David (windows) <li>ITK Snap: James <li>Amira </ul> <li>Review of collaborator needs <ul> <li>Dave <li>Jeroen <li>Rob </ul> <li>Candidate Data sets <ul> <li>Jeroen will ask for multimodel cell data <li>torso data (CT and MRI) <li>head dataset from Fanxiang <li>Charles' data </ul> </ul> </ol> [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] CIBC:Project:ImageVis3D:Meetings:2008-02-14 0 2589 5111 2008-03-06T19:56:25Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Meeting== <p>ImageVis3D Meeting </p> <p>Allen, James, Jeroen, Dave, Rob, David<br/> February 14 </p><hr/> <ol> <li>Goals for next time: <ul> <li>key differntiating features <ul> <li>multidimensional transfer functions for great volume rendering <li>multifield vis (Amira and Osirix will do this) <li>time dependent data <li>quantitative evaluation of the data <li>large data (Microview will do 4GB) </ul> <li>Mockup of UI </ul> <li>Review software <ul> <li>Osirix: Allen <ul> <li>based on VTk/ITK <li>more for clinicians and scientists <li>strength is viewing of data before reading <ul> <li>thumbnails from contents of databases <li>management of databases is nice </ul> <li>does support multiple, indendent windows <li>volume rendering based on isosurface, with some preset values for skin, bone, <li>uses control/status bar at the top of display <li>mouse control is flexible, can be reassigned by user <li>quick scrolling through images <li>some segmentation support-but did not work as expected <li>intensity/contrast setting apply to all views at once <li>2D view is strong, 3D is usable <li>to take from this <ul> <li>flexible view combinations, configurable <li>each subwindow should have its own context <li>envision a window like the map3d browser to manage the display and database <li>in each pane, have a way of setting features of the display in that pane <li>have a menu of color maps that the user can drop onto specific panes; think about color table management <li>include a watermark generator in saving images section </ul> <li>questions <ul> <li>what sort of operations do we plan to support?, e.g., image processing <li>granularity of parameters will have to evolve; start with coarse groupings of settings and spit out only as needed </ul> </ul> <li>Microview: David (windows) <ul> <li>used tab views of interface elements, but user has to manually delete tabs; tabs hold the provenance and allow user to reset a previous setting, much like a module in SCIRun <li>had slider bar for brightness/contrast, worked on all panes <li>lacked opacity settings for isosurface display, not clear how to get multiple surface <li>no undo button for setting transfer function <li>good help function, pop up <li>good labeling, appears to be user settable <li>color scheme was poor overall <li>transfer function had histogram based interface that was fairly complex and hard to use <li>UI is not great, nonintuitive even though layouts sometimes good <li>keeps some history and show the values changed in a separate window <li>isosurface render was very fast <li>to take from this: <ul> <li>nice layout <li>consider how to maintain provenance of operation </ul> <li>question: <ul> <li>could overlay geometry that it read from a file over the rendering --it this useful? <li>how do we manage provenance information <li>scriptability: use Python? Need to figure this out </ul> </ul> <li>ITK Snap: James <ul> <li>has interesting interface to filters <li>offers preview function <li>provides step by step instructions on segmentation process <li>segmentation algo did not actually work <li>needed more reset functions <li>to take from this <ul> <li>preview is nice function when setting parameters <li>has tutorial button at start up <li>frame questions in terms of intuitive settings, e.g., higher quality, lower quality, or slower/faster, rather than asking to set numbers that may not mean anything </ul> <li>questions </ul> <li>Amira <ul> <li>Review of collaborator needs </ul> <li>Dave <li>Jeroen <li>Rob <ul> <li>Candidate Data sets </ul> <li>Jeroen will ask for multimodel cell data <li>torso data (CT and MRI): ue those from Eric Voth <li>head dataset from Fanxiang <ul> <li>this looks good </ul> </ul> <li>Next week <ol> <li> UI: Joeren <li> Image processing features: Allen <li> Rendering options and features: James <li> Scripting: David </ol> </ol> 5141 5111 2008-04-15T22:16:12Z Macleod 3 /* ImageVis3D Meeting */ wikitext text/x-wiki ==ImageVis3D Meeting== [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] '''February 14''' <p>Allen, James, Jeroen, Dave, Rob, David<br/> </p><hr/> <ol> <li>Goals for next time: <ul> <li>key differntiating features <ul> <li>multidimensional transfer functions for great volume rendering <li>multifield vis (Amira and Osirix will do this) <li>time dependent data <li>quantitative evaluation of the data <li>large data (Microview will do 4GB) </ul> <li>Mockup of UI </ul> <li>Review software <ul> <li>Osirix: Allen <ul> <li>based on VTk/ITK <li>more for clinicians and scientists <li>strength is viewing of data before reading <ul> <li>thumbnails from contents of databases <li>management of databases is nice </ul> <li>does support multiple, indendent windows <li>volume rendering based on isosurface, with some preset values for skin, bone, <li>uses control/status bar at the top of display <li>mouse control is flexible, can be reassigned by user <li>quick scrolling through images <li>some segmentation support-but did not work as expected <li>intensity/contrast setting apply to all views at once <li>2D view is strong, 3D is usable <li>to take from this <ul> <li>flexible view combinations, configurable <li>each subwindow should have its own context <li>envision a window like the map3d browser to manage the display and database <li>in each pane, have a way of setting features of the display in that pane <li>have a menu of color maps that the user can drop onto specific panes; think about color table management <li>include a watermark generator in saving images section </ul> <li>questions <ul> <li>what sort of operations do we plan to support?, e.g., image processing <li>granularity of parameters will have to evolve; start with coarse groupings of settings and spit out only as needed </ul> </ul> <li>Microview: David (windows) <ul> <li>used tab views of interface elements, but user has to manually delete tabs; tabs hold the provenance and allow user to reset a previous setting, much like a module in SCIRun <li>had slider bar for brightness/contrast, worked on all panes <li>lacked opacity settings for isosurface display, not clear how to get multiple surface <li>no undo button for setting transfer function <li>good help function, pop up <li>good labeling, appears to be user settable <li>color scheme was poor overall <li>transfer function had histogram based interface that was fairly complex and hard to use <li>UI is not great, nonintuitive even though layouts sometimes good <li>keeps some history and show the values changed in a separate window <li>isosurface render was very fast <li>to take from this: <ul> <li>nice layout <li>consider how to maintain provenance of operation </ul> <li>question: <ul> <li>could overlay geometry that it read from a file over the rendering --it this useful? <li>how do we manage provenance information <li>scriptability: use Python? Need to figure this out </ul> </ul> <li>ITK Snap: James <ul> <li>has interesting interface to filters <li>offers preview function <li>provides step by step instructions on segmentation process <li>segmentation algo did not actually work <li>needed more reset functions <li>to take from this <ul> <li>preview is nice function when setting parameters <li>has tutorial button at start up <li>frame questions in terms of intuitive settings, e.g., higher quality, lower quality, or slower/faster, rather than asking to set numbers that may not mean anything </ul> <li>questions </ul> <li>Amira <ul> <li>Review of collaborator needs </ul> <li>Dave <li>Jeroen <li>Rob <ul> <li>Candidate Data sets </ul> <li>Jeroen will ask for multimodel cell data <li>torso data (CT and MRI): ue those from Eric Voth <li>head dataset from Fanxiang <ul> <li>this looks good </ul> </ul> <li>Next week <ol> <li> UI: Joeren <li> Image processing features: Allen <li> Rendering options and features: James <li> Scripting: David </ol> </ol> [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] CIBC:Project:ImageVis3D:Meetings:2008-02-21 0 2590 5112 2008-03-06T20:00:24Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Meeting== Allen, James, Jeroen, Dave, Rob, David February 21, 2008 <ol> <li>Image processing components (Allen) <ul> <li>how much do we need? <li>image registration <li>blurring filter <li>interpolation <li>intensity equalization (confocal) </ul> <li>Rendering <ul> <li>multidimensionl Xfer function <ul> <li>assigning different parameters to different dimensions </ul> <li>manage multivariate datasets <li>isosurface extraction <ul> <li>multiple syrfaces <li>surface transparancy </ul> <li>do not include vector valued data </ul> <li>Infracture <ul> <li>file reading and writing <li>sessions saving/loading <li>object/window management <li>fly-through: later, if at all </ul> <li>Next week <ul> <li>ask for VisTrails person to come <li>Jens will show his software - UI: Joeren Image processing features: Allen Rendering options and features: James Scripting: David </ul> </ol> 5142 5112 2008-04-15T22:16:43Z Macleod 3 /* ImageVis3D Meeting */ wikitext text/x-wiki ==ImageVis3D Meeting== '''February 21, 2008''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Allen, James, Jeroen, Dave, Rob, David <ol> <li>Image processing components (Allen) <ul> <li>how much do we need? <li>image registration <li>blurring filter <li>interpolation <li>intensity equalization (confocal) </ul> <li>Rendering <ul> <li>multidimensionl Xfer function <ul> <li>assigning different parameters to different dimensions </ul> <li>manage multivariate datasets <li>isosurface extraction <ul> <li>multiple syrfaces <li>surface transparancy </ul> <li>do not include vector valued data </ul> <li>Infracture <ul> <li>file reading and writing <li>sessions saving/loading <li>object/window management <li>fly-through: later, if at all </ul> <li>Next week <ul> <li>ask for VisTrails person to come <li>Jens will show his software - UI: Joeren Image processing features: Allen Rendering options and features: James Scripting: David </ul> </ol> [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Main Page 0 1 5113 5101 2008-03-13T19:42:52Z Erikj 2 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] [[Collab:test]] 5157 5113 2008-05-08T23:35:52Z Erikj 2 /* Executive Materials */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5158 5157 2008-07-02T21:38:35Z Jeroen 19 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] Collab:Project:Afib 200 2591 5114 2008-03-13T20:01:05Z Erikj 2 wikitext text/x-wiki Blah blah. [[TestLatex|LaTeX Example Document]] 5116 5114 2008-03-13T20:03:31Z Erikj 2 wikitext text/x-wiki [[TestLatex|LaTeX Example Document]] Included bits: [[test/MyBib]] [[test/LatexDoc/Section1]] File:OWWProtocols.png 6 2595 5119 2008-03-13T20:07:58Z Erikj 2 Example image for LatexDoc. wikitext text/x-wiki Example image for LatexDoc. CIBC:Project:APP Interface dev 0 2583 5120 5098 2008-03-24T17:44:01Z Mjc 35 /* ChangeFieldData */ wikitext text/x-wiki The following need code adapted from their module equivalents : === Bundle === * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc === ChangeFieldData === * ./ChangeFieldData/ApplyMappingMatrixAlg.cc (upandey) * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc <strike> * ./ChangeFieldData/CalculateGradientsAlg.cc(Marty) </strike> * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc === ChangeMesh === * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc === Converters === * ./Converters/ConvertMatrixToStringAlg.cc === DataArrayMath === * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc === DataIO === <strike> * ./DataIO/ReadBundleAlg.cc (James) * ./DataIO/ReadColorMap2DAlg.cc (James) * ./DataIO/ReadColorMapAlg.cc (James) </strike> * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc (James) * ./DataIO/ReadPathAlg.cc (James) * ./DataIO/ReadStringAlg.cc (James) * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> === Math === * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc === MiscField === * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc === NewField === * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc === String === * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc === Time === * ./Time/TimeControlsAlg.cc === Visualization === * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5121 5120 2008-03-24T17:44:20Z Mjc 35 /* ChangeFieldData */ wikitext text/x-wiki The following need code adapted from their module equivalents : === Bundle === * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc === ChangeFieldData === <strike> * ./ChangeFieldData/ApplyMappingMatrixAlg.cc (upandey) </strike> * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc <strike> * ./ChangeFieldData/CalculateGradientsAlg.cc(Marty) </strike> * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc === ChangeMesh === * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc === Converters === * ./Converters/ConvertMatrixToStringAlg.cc === DataArrayMath === * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc === DataIO === <strike> * ./DataIO/ReadBundleAlg.cc (James) * ./DataIO/ReadColorMap2DAlg.cc (James) * ./DataIO/ReadColorMapAlg.cc (James) </strike> * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc (James) * ./DataIO/ReadPathAlg.cc (James) * ./DataIO/ReadStringAlg.cc (James) * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> === Math === * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc === MiscField === * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc === NewField === * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc === String === * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc === Time === * ./Time/TimeControlsAlg.cc === Visualization === * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? 5123 5121 2008-03-25T18:12:14Z Upandey 55 /* ChangeFieldData */ wikitext text/x-wiki The following need code adapted from their module equivalents : === Bundle === * ./Bundle/CreateParameterBundleAlg.cc * ./Bundle/GetBundlesFromBundleAlg.cc * ./Bundle/GetColorMap2sFromBundleAlg.cc * ./Bundle/GetColorMapsFromBundleAlg.cc * ./Bundle/GetFieldsFromBundleAlg.cc * ./Bundle/GetMatricesFromBundleAlg.cc * ./Bundle/GetNrrdsFromBundleAlg.cc * ./Bundle/GetPathsFromBundleAlg.cc * ./Bundle/GetStringsFromBundleAlg.cc * ./Bundle/InsertBundlesIntoBundleAlg.cc * ./Bundle/InsertColorMap2sIntoBundleAlg.cc * ./Bundle/InsertColorMapsIntoBundleAlg.cc * ./Bundle/InsertEnvironmentIntoBundleAlg.cc * ./Bundle/InsertFieldsIntoBundleAlg.cc * ./Bundle/InsertMatricesIntoBundleAlg.cc * ./Bundle/InsertNrrdsIntoBundleAlg.cc * ./Bundle/InsertPathsIntoBundleAlg.cc * ./Bundle/InsertStringsIntoBundleAlg.cc * ./Bundle/JoinBundlesAlg.cc * ./Bundle/ReportBundleInfoAlg.cc === ChangeFieldData === <strike> * ./ChangeFieldData/ApplyMappingMatrixAlg.cc (upandey) </strike> * ./ChangeFieldData/CalculateFieldData2Alg.cc * ./ChangeFieldData/CalculateFieldData3Alg.cc * ./ChangeFieldData/CalculateFieldDataAlg.cc * ./ChangeFieldData/CalculateFieldDataCompiledAlg.cc <strike> * ./ChangeFieldData/CalculateGradientsAlg.cc(Marty) </strike> * ./ChangeFieldData/CalculateInsideWhichFieldAlg.cc * ./ChangeFieldData/CalculateLatVolGradientsAtNodesAlg.cc * ./ChangeFieldData/CalculateNodeNormalsAlg.cc(upandey) * ./ChangeFieldData/CalculateVectorMagnitudesAlg.cc(upandey) * ./ChangeFieldData/ConvertFieldBasisAlg.cc * ./ChangeFieldData/ConvertFieldDataTypeAlg.cc * ./ChangeFieldData/ConvertLatVolDataFromElemToNodeAlg.cc(upandey) * ./ChangeFieldData/ConvertLatVolDataFromNodeToElemAlg.cc(upandey) * ./ChangeFieldData/CreateFieldDataAlg.cc * ./ChangeFieldData/MapFieldDataFromSourceToDestinationAlg.cc * ./ChangeFieldData/MaskLatVolWithTriSurfAlg.cc * ./ChangeFieldData/ReportMeshQualityMeasuresAlg.cc * ./ChangeFieldData/SelectAndSetFieldData3Alg.cc * ./ChangeFieldData/SelectAndSetFieldDataAlg.cc === ChangeMesh === * ./ChangeMesh/CalculateMeshNodesAlg.cc * ./ChangeMesh/ConvertMeshCoordinateSystemAlg.cc * ./ChangeMesh/EditMeshBoundingBoxAlg.cc * ./ChangeMesh/MapFieldDataToNodeCoordinateAlg.cc * ./ChangeMesh/SmoothMeshAlg.cc * ./ChangeMesh/SwapNodeLocationsWithMatrixEntriesAlg.cc * ./ChangeMesh/TransformMeshWithFunctionAlg.cc * ./ChangeMesh/TransformMeshWithTransformAlg.cc * ./ChangeMesh/TransformPlanarMeshAlg.cc === Converters === * ./Converters/ConvertMatrixToStringAlg.cc === DataArrayMath === * ./DataArrayMath/AppendDataArraysAlg.cc * ./DataArrayMath/CalculateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayAlg.cc * ./DataArrayMath/CreateDataArrayFromIndicesAlg.cc * ./DataArrayMath/CreateTensorArrayAlg.cc * ./DataArrayMath/CreateVectorArrayAlg.cc * ./DataArrayMath/DecomposeTensorArrayIntoEigenVectorsAlg.cc * ./DataArrayMath/ReplicateDataArrayAlg.cc * ./DataArrayMath/ReportDataArrayInfoAlg.cc * ./DataArrayMath/ReportDataArrayMeasureAlg.cc * ./DataArrayMath/SplitVectorArrayInXYZAlg.cc === DataIO === <strike> * ./DataIO/ReadBundleAlg.cc (James) * ./DataIO/ReadColorMap2DAlg.cc (James) * ./DataIO/ReadColorMapAlg.cc (James) </strike> * ./DataIO/ReadHDF5FileAlg.cc * ./DataIO/ReadMatrixAlg.cc (James) * ./DataIO/ReadPathAlg.cc (James) * ./DataIO/ReadStringAlg.cc (James) * ./DataIO/StreamMatrixFromDiskAlg.cc <strike> * ./DataIO/WriteBundleAlg.cc (James) * ./DataIO/WriteColorMap2DAlg.cc (James) * ./DataIO/WriteColorMapAlg.cc (James) * ./DataIO/WriteMatrixAlg.cc (James) * ./DataIO/WritePathAlg.cc (James) * ./DataIO/WriteStringAlg.cc (James) </strike> === Math === * ./Math/AppendMatrixAlg.cc * ./Math/BuildNoiseColumnMatrixAlg.cc * ./Math/ChooseMatrixAlg.cc * ./Math/CollectMatricesAlg.cc * ./Math/ConvertMappingMatrixToMaskVectorAlg.cc * ./Math/ConvertMaskVectorToMappingMatrixAlg.cc * ./Math/ConvertMatrixTypeAlg.cc * ./Math/CreateGeometricTransformAlg.cc * ./Math/CreateMatrixAlg.cc * ./Math/EvaluateLinAlgBinaryAlg.cc * ./Math/EvaluateLinAlgGeneralAlg.cc * ./Math/EvaluateLinAlgUnaryAlg.cc * ./Math/GetColumnOrRowFromMatrixAlg.cc * ./Math/GetSubmatrixAlg.cc * ./Math/RemoveZeroRowsAndColumnsAlg.cc * ./Math/RemoveZerosFromMatrixAlg.cc * ./Math/ReorderMatrixByCuthillMcKeeAlg.cc * ./Math/ReorderMatrixByReverseCuthillMcKeeAlg.cc * ./Math/ReportColumnMatrixMisfitAlg.cc * ./Math/ReportMatrixColumnMeasureAlg.cc * ./Math/ReportMatrixInfoAlg.cc * ./Math/ReportMatrixRowMeasureAlg.cc * ./Math/ResizeMatrixAlg.cc * ./Math/SolveLinearSystemAlg.cc * ./Math/SolveMinNormLeastSqSystemAlg.cc * ./Math/SortMatrixAlg.cc === MiscField === * ./MiscField/BuildMappingMatrixAlg.cc * ./MiscField/BuildMatrixOfSurfaceNormalsAlg.cc * ./MiscField/BuildPointCloudToLatVolMappingMatrixAlg.cc * ./MiscField/ChooseFieldAlg.cc * ./MiscField/CollectPointCloudsAlg.cc * ./MiscField/CoregisterPointCloudsAlg.cc * ./MiscField/ManageFieldSeriesAlg.cc * ./MiscField/ReportFieldGeometryMeasuresAlg.cc * ./MiscField/ReportFieldInfoAlg.cc * ./MiscField/ReportScalarFieldStatsAlg.cc * ./MiscField/ReportSearchGridInfoAlg.cc * ./MiscField/SelectFieldROIWithBoxWidgetAlg.cc * ./MiscField/SetFieldOrMeshStringPropertyAlg.cc * ./MiscField/SetFieldPropertyAlg.cc === NewField === * ./NewField/ClipFieldByFunctionAlg.cc * ./NewField/ClipFieldToFieldOrWidgetAlg.cc * ./NewField/ClipFieldWithSeedAlg.cc * ./NewField/ClipLatVolByIndicesOrWidgetAlg.cc * ./NewField/ClipVolumeByIsovalueAlg.cc * ./NewField/CollectFieldsAlg.cc * ./NewField/ConvertMatricesToMeshAlg.cc * ./NewField/CreateImageAlg.cc * ./NewField/CreateLatVolAlg.cc * ./NewField/CreateStructHexAlg.cc * ./NewField/DecimateTriSurfAlg.cc * ./NewField/ExtractIsosurfaceByFunctionAlg.cc * ./NewField/FairMeshAlg.cc * ./NewField/GeneratePointSamplesFromFieldAlg.cc * ./NewField/GeneratePointSamplesFromFieldOrWidgetAlg.cc * ./NewField/GenerateSinglePointProbeFromFieldAlg.cc * ./NewField/GetAllSegmentationBoundariesAlg.cc * ./NewField/GetCentroidsFromMeshAlg.cc * ./NewField/GetSliceFromStructuredFieldByIndicesAlg.cc * ./NewField/InsertHexVolSheetAlongSurfaceAlg.cc * ./NewField/InterfaceWithCamalAlg.cc * ./NewField/InterfaceWithCubitAlg.cc * ./NewField/InterfaceWithTetGenAlg.cc * ./NewField/JoinFieldsAlg.cc * ./NewField/MergeFieldsAlg.cc * ./NewField/MergeTriSurfsAlg.cc * ./NewField/RefineMeshAlg.cc * ./NewField/RefineMeshByIsovalue2Alg.cc * ./NewField/RefineMeshByIsovalueAlg.cc * ./NewField/RemoveHexVolSheetAlg.cc * ./NewField/SubsampleStructuredFieldByIndicesAlg.cc === String === * ./String/CreateStringAlg.cc * ./String/GetFileNameAlg.cc * ./String/GetNetworkFileNameAlg.cc * ./String/JoinStringsAlg.cc * ./String/PrintMatrixIntoStringAlg.cc * ./String/PrintStringIntoStringAlg.cc * ./String/ReportStringInfoAlg.cc * ./String/SplitFileNameAlg.cc === Time === * ./Time/TimeControlsAlg.cc === Visualization === * ./Visualization/ChooseColorMapAlg.cc * ./Visualization/ColorMap2DSemanticsAlg.cc * ./Visualization/ConvertFieldsToTextureAlg.cc * ./Visualization/CreateAndEditColorMapAlg.cc * ./Visualization/CreateLightForViewerAlg.cc * ./Visualization/CreateViewerAxesAlg.cc * ./Visualization/CreateViewerClockIconAlg.cc * ./Visualization/GenerateStreamLinesAlg.cc * ./Visualization/GenerateStreamLinesWithPlacementHeuristicAlg.cc * ./Visualization/RescaleColorMapAlg.cc * ./Visualization/ShowColorMapAlg.cc * ./Visualization/ShowFieldGlyphsAlg.cc * ./Visualization/ShowMatrixAlg.cc * ./Visualization/ShowMeshBoundingBoxAlg.cc * ./Visualization/ShowStringAlg.cc * ./Visualization/ShowTextureSlicesAlg.cc === Notes === # The writer code changes the unknown filetype from Binary to Text (see GenericWriter.cc and auto_ostream() in Persistent.cc). Is this really necessary? User:Upandey 2 2596 5122 2008-03-25T17:54:44Z Erikj 2 wikitext text/x-wiki UmaKant Pandey SCI Grad Student CIBC:Project:ImageVis3D:Meetings:2008-03-06 0 2597 5130 2008-04-01T18:09:36Z Macleod 3 wikitext text/x-wiki ImageVis3D Team Meeting <p>March 6, 2008 </p> <p>Dave, Jeroen, Rob, Allen, David </p> <ol> <li>Discuss Jens software for its leveraging potiential </li><li>Still to check out <ul> <li>Paraview <a href="http://www.paraview.org">http://www.paraview.org</a> <ul> <li>DOE ASCII product </li><li>parallel implementations </li><li>VISIT is the VACET counterpart with similar capabilities </li><li>ITK supported but with some of the VTK support replaced for higher efficiency </li><li>not clear who the target audience is </li></ul> </li><li>Metamorph <a href="http://www.moleculardevices.com/pages/software/metamorph.html">http://www.moleculardevices.com/pages/software/metamorph.html</a> </li><li>TU Wien <a href="http://www.cg.tuwien.ac.at/research/publications/2007/bruckner-2007-STF/">http://www.cg.tuwien.ac.at/research/publications/2007/bruckner-2007-STF/</a> <ul> <li>no software obviously available but some nice papers showing what they have done </li></ul> </li></ul> </li><li>Defining scope <ul> <li>goal: we still need to get more of our research into ImageVis3D <ul> <li>multi dimensional transfer function </li><li>ridge enhancement and occluding contours </li><li>sillouette lines </li><li>more non-photoralistic rendering </li><li>our goal is cover art </li></ul> </li><li>other features to look for <ul> <li>comparative vis </li><li>large data sets </li><li>time dependent data </li><li>multifield data </li></ul> </li><li>Charles had a list with JR; need to follow up </li><li>SCIRUn better than BioImage <ul> <li>add multiple elements to visualization </li><li>generate high res images </li><li>what is hard in SR is setting up X-fer function, rendering parameters </li></ul> </li><li>accepting masks to overlay the VR </li><li>illustrative volume rendering (SCI seminar) </li></ul> </li><li>Interface improvements: <ul> <li>to X-fer function <ul> <li>Dave has a pointer to another way of presenting plot of parameters in Xfer function </li><li>control of surface highlights also needs improvment </li><li>painting in image space linking to histogram space also great functionality </li><li>masking out regions of data to help tune the X-fer function based on local values <ul> <li>clipping planes are the simplest </li><li>ellipsoid is the next in complexity </li><li>polyline a la Osirix </li></ul> </li></ul> </li><li>create/remove wedges or other shapes from volume </li><li>make sets of settings in single button </li><li>time-dependent <ul> <li>one option is to read all the data into memory </li><li>other approaches exist but are complex </li></ul> </li></ul> </li></ol> 5131 5130 2008-04-01T18:41:15Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Team Meeting== '''March 6, 2008''' <p>Dave, Jeroen, Rob, Allen, David </p> <ol> <li>Still to check out <ul> <li>Paraview <a href="http://www.paraview.org"> http://www.paraview.org</a> <ul> <li>DOE ASCII product </li><li>parallel implementations </li><li>VISIT is the VACET counterpart with similar capabilities </li><li>ITK supported but with some of the VTK support replaced for higher efficiency </li><li>not clear who the target audience is </li></ul> </li><li>Metamorph <a href="http://www.moleculardevices.com/pages/software/metamorph.html"> http://www.moleculardevices.com/pages/software/metamorph.html</a> </li><li>TU Wien <a href="http://www.cg.tuwien.ac.at/research/publications/2007/bruckner-2007-STF/"> http://www.cg.tuwien.ac.at/research/publications/2007/bruckner-2007-STF/</a> <ul> <li>no software obviously available but some nice papers showing what they have done </li></ul> </li></ul> </li><li>Defining scope <ul> <li>goal: we still need to get more of our research into ImageVis3D <ul> <li>multi dimensional transfer function </li><li>ridge enhancement and occluding contours </li><li>sillouette lines </li><li>more non-photoralistic rendering </li><li>our goal is cover art </li></ul> </li><li>other features to look for <ul> <li>comparative vis </li><li>large data sets </li><li>time dependent data </li><li>multifield data </li></ul> </li><li>Charles had a list with JR; need to follow up </li><li>SCIRUn better than BioImage <ul> <li>add multiple elements to visualization </li><li>generate high res images </li><li>what is hard in SR is setting up X-fer function, rendering parameters </li></ul> </li><li>accepting masks to overlay the VR </li><li>illustrative volume rendering (SCI seminar) </li></ul> </li><li>Interface improvements: <ul> <li>to X-fer function <ul> <li>Dave has a pointer to another way of presenting plot of parameters in Xfer function </li><li>control of surface highlights also needs improvment </li><li>painting in image space linking to histogram space also great functionality </li><li>masking out regions of data to help tune the X-fer function based on local values <ul> <li>clipping planes are the simplest </li><li>ellipsoid is the next in complexity </li><li>polyline a la Osirix </li></ul> </li></ul> </li><li>create/remove wedges or other shapes from volume </li><li>make sets of settings in single button </li><li>time-dependent <ul> <li>one option is to read all the data into memory </li><li>other approaches exist but are complex </li></ul> </li></ul> </li></ol> 5145 5131 2008-04-15T22:18:30Z Macleod 3 /* ImageVis3D Team Meeting */ wikitext text/x-wiki ==ImageVis3D Team Meeting== '''March 6, 2008''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] <p>Dave, Jeroen, Rob, Allen, David </p> <ol> <li>Still to check out <ul> <li>Paraview <a href="http://www.paraview.org"> http://www.paraview.org</a> <ul> <li>DOE ASCII product </li><li>parallel implementations </li><li>VISIT is the VACET counterpart with similar capabilities </li><li>ITK supported but with some of the VTK support replaced for higher efficiency </li><li>not clear who the target audience is </li></ul> </li><li>Metamorph <a href="http://www.moleculardevices.com/pages/software/metamorph.html"> http://www.moleculardevices.com/pages/software/metamorph.html</a> </li><li>TU Wien <a href="http://www.cg.tuwien.ac.at/research/publications/2007/bruckner-2007-STF/"> http://www.cg.tuwien.ac.at/research/publications/2007/bruckner-2007-STF/</a> <ul> <li>no software obviously available but some nice papers showing what they have done </li></ul> </li></ul> </li><li>Defining scope <ul> <li>goal: we still need to get more of our research into ImageVis3D <ul> <li>multi dimensional transfer function </li><li>ridge enhancement and occluding contours </li><li>sillouette lines </li><li>more non-photoralistic rendering </li><li>our goal is cover art </li></ul> </li><li>other features to look for <ul> <li>comparative vis </li><li>large data sets </li><li>time dependent data </li><li>multifield data </li></ul> </li><li>Charles had a list with JR; need to follow up </li><li>SCIRUn better than BioImage <ul> <li>add multiple elements to visualization </li><li>generate high res images </li><li>what is hard in SR is setting up X-fer function, rendering parameters </li></ul> </li><li>accepting masks to overlay the VR </li><li>illustrative volume rendering (SCI seminar) </li></ul> </li><li>Interface improvements: <ul> <li>to X-fer function <ul> <li>Dave has a pointer to another way of presenting plot of parameters in Xfer function </li><li>control of surface highlights also needs improvment </li><li>painting in image space linking to histogram space also great functionality </li><li>masking out regions of data to help tune the X-fer function based on local values <ul> <li>clipping planes are the simplest </li><li>ellipsoid is the next in complexity </li><li>polyline a la Osirix </li></ul> </li></ul> </li><li>create/remove wedges or other shapes from volume </li><li>make sets of settings in single button </li><li>time-dependent <ul> <li>one option is to read all the data into memory </li><li>other approaches exist but are complex </li></ul> </li></ul> </li></ol> [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] CIBC:Project:ImageVis3D:Meetings:2008-03-10 0 2598 5133 2008-04-01T18:56:34Z Macleod 3 wikitext text/x-wiki ==SLIVR Meeting== '''March 10, 2008''' Marty, Jens, Jereen, Chris, Rob, Michael, David, Allen <ol> <li>General side question: ray casting? Should we implement it? <ul> <li>has advantages but needs relatively new hardware </li><li>we want to have a smooth path to this approach </li><li>to support this, make inner rendering loop as clean as possible </li><li>ray casting will give us performance advantages but also better quatity isosurfacing </li></ul> <li>Michael's proposal <ul> <li>Refactoring the volume rendering </li><li>Build new shaders <ul> <li>will reqiore some new UI elements to control new shaders </li><li>allow easy addition of new shaders (currently very hard) </li></ul> </li><li>Handle multiple volumes <ul> <li>new functionality we don't have </li></ul> </li><li>Implement generalized bricking </li></ul> </li><li>Time line <ul> <li>"few weeks" of Michael's time </li><li>perform then in order above 5146 5133 2008-04-15T22:18:52Z Macleod 3 /* SLIVR Meeting */ wikitext text/x-wiki ==SLIVR Meeting== '''March 10, 2008''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Marty, Jens, Jereen, Chris, Rob, Michael, David, Allen <ol> <li>General side question: ray casting? Should we implement it? <ul> <li>has advantages but needs relatively new hardware </li><li>we want to have a smooth path to this approach </li><li>to support this, make inner rendering loop as clean as possible </li><li>ray casting will give us performance advantages but also better quatity isosurfacing </li></ul> <li>Michael's proposal <ul> <li>Refactoring the volume rendering </li><li>Build new shaders <ul> <li>will reqiore some new UI elements to control new shaders </li><li>allow easy addition of new shaders (currently very hard) </li></ul> </li><li>Handle multiple volumes <ul> <li>new functionality we don't have </li></ul> </li><li>Implement generalized bricking </li></ul> </li><li>Time line <ul> <li>"few weeks" of Michael's time </li><li>perform then in order above [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] 5147 5146 2008-04-15T22:19:00Z Macleod 3 wikitext text/x-wiki ==SLIVR Meeting== '''March 10, 2008''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Marty, Jens, Jereen, Chris, Rob, Michael, David, Allen <ol> <li>General side question: ray casting? Should we implement it? <ul> <li>has advantages but needs relatively new hardware </li><li>we want to have a smooth path to this approach </li><li>to support this, make inner rendering loop as clean as possible </li><li>ray casting will give us performance advantages but also better quatity isosurfacing </li></ul> <li>Michael's proposal <ul> <li>Refactoring the volume rendering </li><li>Build new shaders <ul> <li>will reqiore some new UI elements to control new shaders </li><li>allow easy addition of new shaders (currently very hard) </li></ul> </li><li>Handle multiple volumes <ul> <li>new functionality we don't have </li></ul> </li><li>Implement generalized bricking </li></ul> </li><li>Time line <ul> <li>"few weeks" of Michael's time </li><li>perform then in order above [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] CIBC:Project:ImageVis3D:Meetings:2008-03-26 0 2599 5134 2008-04-01T18:59:34Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Meeting== '''March 26, 2008''' Jens, David, Allen, Rob <ol> <li>More ideas for features <ul> <li>masking and 3D painting (Jens is about to publish this) </li><li>masking based on isosurface </li><li>Stereo projection </li></ul> </li><li>Overall design <ul> <li>Separation of UI and backend <ul> <li>further separate backend into graphics and non-graphics components </li><li>separate classes for created transfer functions and rendering based on the transfer function </li></ul> </li><li>Achieving re-use? <ul> <li>make use of SLIVR </li><li>read files via same codes as Seg3D </li><li>data structures from SCIRun </li></ul> </li><li>File reading and I/O engine <ul> <li>base on ITK but anticipate replacing </li><li>consider 4D from the start <ul> <li>are there formats for this? </li></ul> </li><li>consider large data sets from the start <ul> <li>must be part of the file reader </li></ul> </li></ul> </li><li>New UI elements <ul> <li>interface to multidimensional X-fer function <ul> <li>different UI for different dimensions </li><li>how to design a good UI ? TOdo: ask Dave to think about it <ul> <li>draw interface </li><li>separate this capability well from the rest of the code </li><li>include some presets and a way to add presets </li></ul> </li></ul> </li></ul> </li></ul> </li><li>Interface with SLIVR <ul> <li>ask Michael and Marty to come to us and explain SLIVR </li><li>we will need to interface to it well </li><li>can we integrate level of detail capabilities to SLIVR? </li><li>how does SLIVR handle large data now? </li></ul> </li></ol> 5148 5134 2008-04-15T22:19:25Z Macleod 3 /* ImageVis3D Meeting */ wikitext text/x-wiki ==ImageVis3D Meeting== '''March 26, 2008''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Jens, David, Allen, Rob <ol> <li>More ideas for features <ul> <li>masking and 3D painting (Jens is about to publish this) </li><li>masking based on isosurface </li><li>Stereo projection </li></ul> </li><li>Overall design <ul> <li>Separation of UI and backend <ul> <li>further separate backend into graphics and non-graphics components </li><li>separate classes for created transfer functions and rendering based on the transfer function </li></ul> </li><li>Achieving re-use? <ul> <li>make use of SLIVR </li><li>read files via same codes as Seg3D </li><li>data structures from SCIRun </li></ul> </li><li>File reading and I/O engine <ul> <li>base on ITK but anticipate replacing </li><li>consider 4D from the start <ul> <li>are there formats for this? </li></ul> </li><li>consider large data sets from the start <ul> <li>must be part of the file reader </li></ul> </li></ul> </li><li>New UI elements <ul> <li>interface to multidimensional X-fer function <ul> <li>different UI for different dimensions </li><li>how to design a good UI ? TOdo: ask Dave to think about it <ul> <li>draw interface </li><li>separate this capability well from the rest of the code </li><li>include some presets and a way to add presets </li></ul> </li></ul> </li></ul> </li></ul> </li><li>Interface with SLIVR <ul> <li>ask Michael and Marty to come to us and explain SLIVR </li><li>we will need to interface to it well </li><li>can we integrate level of detail capabilities to SLIVR? </li><li>how does SLIVR handle large data now? </li></ul> </li></ol> [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] CIBC:Project:ImageVis3D:Meetings:2008-04-15 0 2600 5137 2008-04-15T22:10:53Z Macleod 3 wikitext text/x-wiki <p>ImageVis3D Meeting </p> <p>April 15 </p> <p>Allen, Jens, David, Dave, Jeroen, Rob </p> <ol> <li>Allen's presentation of plan <ul> <li>Now vs. later <ul> <li>what do we need in order to release something? <ul> <li>should at least cover most or all of BioImage functionality </li><li>load a data set (SR, NRRDS, Dicom, Matlab), </li><li>orthogonal slice view </li><li>change color maps </li><li>volume rendering, with Xfer function editor; </li><li>paint on slice view to change Xfer function </li><li>crop and reorient image data </li><li>resampling, histogram equalization, median filtering </li><li>viewing options from SR Viewer </li></ul> </li><li>BioImage is broken now <ul> <li>we need to replace all the functionality of BioImage as a minium </li></ul> </li><li>Marty's app <ul> <li>has a few things but is missing a lot </li></ul> </li></ul> </li><li>I/O Engine <ul> <li>use Seg3D engine (ITK) </li><li>verison 1.0 can be the same level of support as Seg3D </li><li>later, we will need to handle larger data <ul> <li>look to Numira for support on this </li></ul> </li><li>consider saving files in NRRD and read from them </li><li>file reading becomes mostly file conversion </li></ul> </li><li>Image processing <ul> <li>could be based on ITK <ul> <li>requires a lot of conversion at present </li></ul> </li><li>but the needs are simple enough and we have code around, we can write ourselves <ul> <li>would reduce need for conversion; stay in NRRD </li><li>TEEM has a lots of image processing tools too </li></ul> </li></ul> </li><li>GUI <ul> <li>separate GUI layer from actual application layer </li><li>Undo functionality <ul> <li>transfer function easy to keep some history </li><li>image processing hard to keep copies; one solution is to save most recent generation; <ul> <li>another solution is regenerate; save all of the operation stack </li><li>need to make UI to manage the command stack </li><li>idea: allow user to bookmark a place in a workflow that is saved in a temporary file </li></ul> </li></ul> </li></ul> </li></ul> </li><li>What to use from Seg3D <ul> <li>almost nothing </li><li>use some of SCIRun </li></ul> </li><li>Overall GUI design <ul> <li>topic for next week's meeting </li></ul> </li><li>Assignments for next week (and beyond) <ul> <li>all: look at Marty's app </li><li>Allen: Linux </li><li>Jens/David: windows </li><li>Jeroen: OSX </li><li>Image processing engine: Allen </li><li>Vis interface: Jens and Allen </li><li>GUI: David </li><li>I/O: Jens </li><li>Memory management: Jens </li><li>Master/process control: Allen </li></ul> </li></ol> 5138 5137 2008-04-15T22:12:14Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Meeting== '''April 15''' <p>Allen, Jens, David, Dave, Jeroen, Rob </p> <ol> <li>Allen's presentation of plan <ul> <li>Now vs. later <ul> <li>what do we need in order to release something? <ul> <li>should at least cover most or all of BioImage functionality </li><li>load a data set (SR, NRRDS, Dicom, Matlab), </li><li>orthogonal slice view </li><li>change color maps </li><li>volume rendering, with Xfer function editor; </li><li>paint on slice view to change Xfer function </li><li>crop and reorient image data </li><li>resampling, histogram equalization, median filtering </li><li>viewing options from SR Viewer </li></ul> </li><li>BioImage is broken now <ul> <li>we need to replace all the functionality of BioImage as a minium </li></ul> </li><li>Marty's app <ul> <li>has a few things but is missing a lot </li></ul> </li></ul> </li><li>I/O Engine <ul> <li>use Seg3D engine (ITK) </li><li>verison 1.0 can be the same level of support as Seg3D </li><li>later, we will need to handle larger data <ul> <li>look to Numira for support on this </li></ul> </li><li>consider saving files in NRRD and read from them </li><li>file reading becomes mostly file conversion </li></ul> </li><li>Image processing <ul> <li>could be based on ITK <ul> <li>requires a lot of conversion at present </li></ul> </li><li>but the needs are simple enough and we have code around, we can write ourselves <ul> <li>would reduce need for conversion; stay in NRRD </li><li>TEEM has a lots of image processing tools too </li></ul> </li></ul> </li><li>GUI <ul> <li>separate GUI layer from actual application layer </li><li>Undo functionality <ul> <li>transfer function easy to keep some history </li><li>image processing hard to keep copies; one solution is to save most recent generation; <ul> <li>another solution is regenerate; save all of the operation stack </li><li>need to make UI to manage the command stack </li><li>idea: allow user to bookmark a place in a workflow that is saved in a temporary file </li></ul> </li></ul> </li></ul> </li></ul> </li><li>What to use from Seg3D <ul> <li>almost nothing </li><li>use some of SCIRun </li></ul> </li><li>Overall GUI design <ul> <li>topic for next week's meeting </li></ul> </li><li>Assignments for next week (and beyond) <ul> <li>all: look at Marty's app </li><li>Allen: Linux </li><li>Jens/David: windows </li><li>Jeroen: OSX </li><li>Image processing engine: Allen </li><li>Vis interface: Jens and Allen </li><li>GUI: David </li><li>I/O: Jens </li><li>Memory management: Jens </li><li>Master/process control: Allen </li></ul> </li></ol> 5139 5138 2008-04-15T22:14:48Z Macleod 3 wikitext text/x-wiki ==ImageVis3D Meeting== '''April 15''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] <p>Allen, Jens, David, Dave, Jeroen, Rob </p> <ol> <li>Allen's presentation of plan <ul> <li>Now vs. later <ul> <li>what do we need in order to release something? <ul> <li>should at least cover most or all of BioImage functionality </li><li>load a data set (SR, NRRDS, Dicom, Matlab), </li><li>orthogonal slice view </li><li>change color maps </li><li>volume rendering, with Xfer function editor; </li><li>paint on slice view to change Xfer function </li><li>crop and reorient image data </li><li>resampling, histogram equalization, median filtering </li><li>viewing options from SR Viewer </li></ul> </li><li>BioImage is broken now <ul> <li>we need to replace all the functionality of BioImage as a minium </li></ul> </li><li>Marty's app <ul> <li>has a few things but is missing a lot </li></ul> </li></ul> </li><li>I/O Engine <ul> <li>use Seg3D engine (ITK) </li><li>verison 1.0 can be the same level of support as Seg3D </li><li>later, we will need to handle larger data <ul> <li>look to Numira for support on this </li></ul> </li><li>consider saving files in NRRD and read from them </li><li>file reading becomes mostly file conversion </li></ul> </li><li>Image processing <ul> <li>could be based on ITK <ul> <li>requires a lot of conversion at present </li></ul> </li><li>but the needs are simple enough and we have code around, we can write ourselves <ul> <li>would reduce need for conversion; stay in NRRD </li><li>TEEM has a lots of image processing tools too </li></ul> </li></ul> </li><li>GUI <ul> <li>separate GUI layer from actual application layer </li><li>Undo functionality <ul> <li>transfer function easy to keep some history </li><li>image processing hard to keep copies; one solution is to save most recent generation; <ul> <li>another solution is regenerate; save all of the operation stack </li><li>need to make UI to manage the command stack </li><li>idea: allow user to bookmark a place in a workflow that is saved in a temporary file </li></ul> </li></ul> </li></ul> </li></ul> </li><li>What to use from Seg3D <ul> <li>almost nothing </li><li>use some of SCIRun </li></ul> </li><li>Overall GUI design <ul> <li>topic for next week's meeting </li></ul> </li><li>Assignments for next week (and beyond) <ul> <li>all: look at Marty's app </li><li>Allen: Linux </li><li>Jens/David: windows </li><li>Jeroen: OSX </li><li>Image processing engine: Allen </li><li>Vis interface: Jens and Allen </li><li>GUI: David </li><li>I/O: Jens </li><li>Memory management: Jens </li><li>Master/process control: Allen </li></ul> </li></ol> CIBC:Project:ImageVis3D:Meetings:2008-04-03 0 2601 5150 2008-04-15T22:21:12Z Macleod 3 wikitext text/x-wiki == ImageVis3D Meeting == '''April 4, 2008''' <ol> <li>SLIVR <ul> <li>use the quick application that Marty wrote as a starting point <ul> <li>uses QT and python </li><li>standalone/bioimage is there this app lives </li><li>event system is the same as Seg3D </li></ul> </li><li>SLIVR is tied into Visit (Vacet SW) </li><li>Michael will get to the rewerite in the next week or two </li><li>Allen will dig into the code in two weeks </li><li>large data handling <ul> <li>support for bricks </li><li>little LOD support, can draw fewer slices </li><li>also plan was to keep low res texture around while user moves data around </li></ul> </li></ul> </li><li>2D Xfer function UI <ul> <li>painting is useful </li><li>reading in 1D Xfer function as scanning tool </li><li>Dave mentioned some research from the NL that might be useful </li><li>MIRL group paper has some ideas - </li></ul> </li><li>Time dependence <ul> <li>much of the computing happens on the card so is fast </li><li>preformance is pretty good as long as memory adequate - </li></ul> </li><li>Multiresolutions <ul> <li>draw multiplle volumes at different resolutions </li><li>e.g., high res heart in a low res torso </li><li>each v olume has its own parameters for display, Xfer function </li></ul> </li></ol> 5151 5150 2008-04-15T22:22:03Z Macleod 3 wikitext text/x-wiki == ImageVis3D Meeting == '''April 4, 2008''' [CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] <ol> <li>SLIVR <ul> <li>use the quick application that Marty wrote as a starting point <ul> <li>uses QT and python </li><li>standalone/bioimage is there this app lives </li><li>event system is the same as Seg3D </li></ul> </li><li>SLIVR is tied into Visit (Vacet SW) </li><li>Michael will get to the rewerite in the next week or two </li><li>Allen will dig into the code in two weeks </li><li>large data handling <ul> <li>support for bricks </li><li>little LOD support, can draw fewer slices </li><li>also plan was to keep low res texture around while user moves data around </li></ul> </li></ul> </li><li>2D Xfer function UI <ul> <li>painting is useful </li><li>reading in 1D Xfer function as scanning tool </li><li>Dave mentioned some research from the NL that might be useful </li><li>MIRL group paper has some ideas </li></ul> </li><li>Time dependence <ul> <li>much of the computing happens on the card so is fast </li><li>preformance is pretty good as long as memory adequate </li></ul> </li><li>Multiresolutions <ul> <li>draw multiplle volumes at different resolutions </li><li>e.g., high res heart in a low res torso </li><li>each v olume has its own parameters for display, Xfer function </li></ul> </li></ol> [CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] 5152 5151 2008-04-15T22:22:24Z Macleod 3 /* ImageVis3D Meeting */ wikitext text/x-wiki == ImageVis3D Meeting == '''April 4, 2008''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] <ol> <li>SLIVR <ul> <li>use the quick application that Marty wrote as a starting point <ul> <li>uses QT and python </li><li>standalone/bioimage is there this app lives </li><li>event system is the same as Seg3D </li></ul> </li><li>SLIVR is tied into Visit (Vacet SW) </li><li>Michael will get to the rewerite in the next week or two </li><li>Allen will dig into the code in two weeks </li><li>large data handling <ul> <li>support for bricks </li><li>little LOD support, can draw fewer slices </li><li>also plan was to keep low res texture around while user moves data around </li></ul> </li></ul> </li><li>2D Xfer function UI <ul> <li>painting is useful </li><li>reading in 1D Xfer function as scanning tool </li><li>Dave mentioned some research from the NL that might be useful </li><li>MIRL group paper has some ideas </li></ul> </li><li>Time dependence <ul> <li>much of the computing happens on the card so is fast </li><li>preformance is pretty good as long as memory adequate </li></ul> </li><li>Multiresolutions <ul> <li>draw multiplle volumes at different resolutions </li><li>e.g., high res heart in a low res torso </li><li>each v olume has its own parameters for display, Xfer function </li></ul> </li></ol> [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] User:Ayla 2 2602 5156 2008-05-01T19:11:19Z Erikj 2 wikitext text/x-wiki Ayla Khan SCI Institute CIBC:Meshing 0 2603 5159 2008-07-02T21:38:56Z Jeroen 19 wikitext text/x-wiki =Meshing = 5160 5159 2008-07-06T19:58:34Z Mjc 35 /* Meshing */ wikitext text/x-wiki =Meshing = ''This list should be edited by Chris and the meshing group, to best utilize Marty's consulting time according to ncrr priorities. Marty will remove items when completed.'' meshing task list: # Developers help (compilation and usage) # Organize completed model data on sci filesystem and wiki # '''Create Mesh''' - 10y torso w/ blood volume (matt jolley) # move particle rendering to SCIRun. # move particle optimizers to SCIRun/algo. # make particle system run threaded jobs per junction type. # detect empty junction instead of crashing. # automate writing output files when complete. # fix bug with double junction particles ending up on triple junction. [[CIBC:Meshing compiling| compilation instructions]] [[CIBC:Meshing completed models| completed mesh projects]] 5162 5160 2008-07-06T20:50:53Z Mjc 35 /* Meshing */ wikitext text/x-wiki =Meshing = ''This list should be edited by Chris and the meshing group, to best utilize Marty's consulting time according to ncrr priorities. Marty will remove items when completed.'' meshing task list: # Developers help (compilation and usage) # Organize completed model data on sci filesystem and wiki # '''Create Mesh''' - 10y torso w/ blood volume (matt jolley) # move particle rendering to SCIRun. # move particle optimizers to SCIRun/algo. # make particle system run threaded jobs per junction type. # detect empty junction instead of crashing. # automate writing output files when complete. # fix bug with double junction particles ending up on triple junction. [[CIBC:Meshing compiling| compiling/running]] [[CIBC:Meshing completed models| completed mesh projects]] 5168 5162 2008-07-19T20:47:57Z Mjc 35 /* Meshing */ wikitext text/x-wiki =Meshing = ''This list should be edited by Chris and the meshing group, to best utilize Marty's consulting time according to ncrr priorities. Marty will remove items when completed.'' meshing task list: # Developers help (compilation and usage) # Organize completed model data on sci filesystem and wiki # '''Create Mesh''' - 10y torso w/ blood volume (matt jolley) # move particle rendering to SCIRun. # move particle optimizers to SCIRun/algo. # make particle system run threaded jobs per junction type. # detect empty junction instead of crashing. # automate writing output files when complete. # fix bug with double junction particles ending up on triple junction. [[CIBC:Meshing Results| collaborator meshing results]] [[CIBC:Meshing compiling| compiling/running]] [[CIBC:Meshing completed models| completed mesh projects]] CIBC:Meshing compiling 0 2604 5161 2008-07-06T20:50:22Z Mjc 35 wikitext text/x-wiki == Building the Code == Checkout the folowing repositories: * https://code.sci.utah.edu/svn/vispack * https://code.sci.utah.edu/svn/people/miriah * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher useable PowerApp. === Install Teem === * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === * follow the [http://glew.sourceforge.net/install.html instructions]. === Build vispack === ==== Cmake ==== * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * add lapack link. liblapack1.so to liblapack.so === Build miriah === ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] First try synaptic or Yast or whatever precompiled options your system has.. Ubuntu has this ready to go. * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah * CMAKE_BUILD_TYPE: Release * GLEW_INCLUDE: <path to your installation>/glew/include * GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a * TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * VISPACK_DIR: <path to your checkout> /vispack * VISPACK_LIBS: <path to your binary dir> /vpbin/lib === Build SCIRun === The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) == Using the Code == Coming soon to a wiki near you... 5163 5161 2008-07-06T22:14:21Z Mjc 35 /* Using the Code */ wikitext text/x-wiki == Building the Code == Checkout the folowing repositories: * https://code.sci.utah.edu/svn/vispack * https://code.sci.utah.edu/svn/people/miriah * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher useable PowerApp. === Install Teem === * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === * follow the [http://glew.sourceforge.net/install.html instructions]. === Build vispack === ==== Cmake ==== * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * add lapack link. liblapack1.so to liblapack.so === Build miriah === ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] First try synaptic or Yast or whatever precompiled options your system has.. Ubuntu has this ready to go. * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah * CMAKE_BUILD_TYPE: Release * GLEW_INCLUDE: <path to your installation>/glew/include * GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a * TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * VISPACK_DIR: <path to your checkout> /vispack * VISPACK_LIBS: <path to your binary dir> /vpbin/lib === Build SCIRun === The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) == Using the Code == === Scripts === Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts ==== example_bm3d_settings.py ==== Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. ==== gen_particle_sys_inputs.py ==== This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. ==== convert_crossings.py ==== This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py ==== create_junction_dirs.py ==== Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. ==== gen_seeds.py ==== Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. ==== pts2tets.py ==== After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. === Preprocessing Segmentation === This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. === Running the Particle System === === Building the TetVol === === Mapping Indeces back to 1 index per material === 5164 5163 2008-07-06T22:19:06Z Mjc 35 /* gen_particle_sys_inputs.py */ wikitext text/x-wiki == Building the Code == Checkout the folowing repositories: * https://code.sci.utah.edu/svn/vispack * https://code.sci.utah.edu/svn/people/miriah * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher useable PowerApp. === Install Teem === * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === * follow the [http://glew.sourceforge.net/install.html instructions]. === Build vispack === ==== Cmake ==== * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * add lapack link. liblapack1.so to liblapack.so === Build miriah === ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] First try synaptic or Yast or whatever precompiled options your system has.. Ubuntu has this ready to go. * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah * CMAKE_BUILD_TYPE: Release * GLEW_INCLUDE: <path to your installation>/glew/include * GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a * TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * VISPACK_DIR: <path to your checkout> /vispack * VISPACK_LIBS: <path to your binary dir> /vpbin/lib === Build SCIRun === The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) == Using the Code == === Scripts === Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts ==== example_bm3d_settings.py ==== Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. ==== gen_particle_sys_inputs.py ==== This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; ==== convert_crossings.py ==== This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py ==== create_junction_dirs.py ==== Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. ==== gen_seeds.py ==== Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. ==== pts2tets.py ==== After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. === Preprocessing Segmentation === This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. === Running the Particle System === === Building the TetVol === === Mapping Indeces back to 1 index per material === 5165 5164 2008-07-06T22:19:28Z Mjc 35 /* Mapping Indeces back to 1 index per material */ wikitext text/x-wiki == Building the Code == Checkout the folowing repositories: * https://code.sci.utah.edu/svn/vispack * https://code.sci.utah.edu/svn/people/miriah * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher useable PowerApp. === Install Teem === * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === * follow the [http://glew.sourceforge.net/install.html instructions]. === Build vispack === ==== Cmake ==== * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * add lapack link. liblapack1.so to liblapack.so === Build miriah === ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] First try synaptic or Yast or whatever precompiled options your system has.. Ubuntu has this ready to go. * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah * CMAKE_BUILD_TYPE: Release * GLEW_INCLUDE: <path to your installation>/glew/include * GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a * TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * VISPACK_DIR: <path to your checkout> /vispack * VISPACK_LIBS: <path to your binary dir> /vpbin/lib === Build SCIRun === The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) == Using the Code == === Scripts === Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts ==== example_bm3d_settings.py ==== Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. ==== gen_particle_sys_inputs.py ==== This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; ==== convert_crossings.py ==== This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py ==== create_junction_dirs.py ==== Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. ==== gen_seeds.py ==== Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. ==== pts2tets.py ==== After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. === Preprocessing Segmentation === This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. === Running the Particle System === === Building the TetVol === === Mapping Indices back to 1 index per material === 5166 5165 2008-07-06T22:19:43Z Mjc 35 /* Cmake */ wikitext text/x-wiki == Building the Code == Checkout the folowing repositories: * https://code.sci.utah.edu/svn/vispack * https://code.sci.utah.edu/svn/people/miriah * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher useable PowerApp. === Install Teem === * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === * follow the [http://glew.sourceforge.net/install.html instructions]. === Build vispack === ==== Cmake ==== * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * add lapack link. liblapack1.so to liblapack.so === Build miriah === ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] First try synaptic or Yast or whatever precompiled options your system has.. Ubuntu has this ready to go. * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah ** CMAKE_BUILD_TYPE: Release ** GLEW_INCLUDE: <path to your installation>/glew/include ** GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? ** VISPACK_DIR: <path to your checkout> /vispack ** VISPACK_LIBS: <path to your binary dir> /vpbin/lib === Build SCIRun === The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) == Using the Code == === Scripts === Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts ==== example_bm3d_settings.py ==== Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. ==== gen_particle_sys_inputs.py ==== This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; ==== convert_crossings.py ==== This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py ==== create_junction_dirs.py ==== Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. ==== gen_seeds.py ==== Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. ==== pts2tets.py ==== After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. === Preprocessing Segmentation === This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. === Running the Particle System === === Building the TetVol === === Mapping Indices back to 1 index per material === CIBC:Project:Keller 0 2605 5167 2008-07-15T20:27:12Z Cates 4 wikitext text/x-wiki {| class="wikitable" |- ! Mouse Type ! homozygous ! heterozygous ! controls (wild-type) |- | mid-gestational | | row 1, cell 3 |- | P0: weaning | | |} CIBC:Meshing Results 0 2606 5169 2008-07-19T20:48:56Z Mjc 35 wikitext text/x-wiki ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/15y-brain-labels.tvc.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/air.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/fluid.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/grey.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/lesion.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/surf.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/tets.tv.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/white.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/15y-brain-labels-high-res.tvc.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/15y-brain-labels.tvc.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/air.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/fluid.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/grey.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/lesion.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/surf.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/tets.tv.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/white.ts.fld ./warfield/head-mesh-fixed-reduced.labels.tvc.fld ./warfield/head-mesh-fixed-reduced.tvd.fld ./warfield/head-mesh.labels.tvc.fld ./warfield/head-mesh.tvd.fld ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld 5170 5169 2008-07-19T20:53:12Z Mjc 35 wikitext text/x-wiki Collaborator Meshes ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/15y-brain-labels.tvc.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/air.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/fluid.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/grey.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/lesion.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/surf.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/tets.tv.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/white.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/15y-brain-labels-high-res.tvc.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/15y-brain-labels.tvc.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/air.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/fluid.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/grey.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/lesion.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/surf.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/tets.tv.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/white.ts.fld ./warfield/head-mesh-fixed-reduced.labels.tvc.fld ./warfield/head-mesh-fixed-reduced.tvd.fld ./warfield/head-mesh.labels.tvc.fld ./warfield/head-mesh.tvd.fld ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png 5171 5170 2008-07-19T21:00:13Z Mjc 35 wikitext text/x-wiki Collaborator Meshes <nowiki> ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/15y-brain-labels.tvc.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/air.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/fluid.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/grey.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/lesion.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/surf.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/tets.tv.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/white.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/15y-brain-labels-high-res.tvc.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/15y-brain-labels.tvc.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/air.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/fluid.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/grey.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/lesion.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/surf.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/tets.tv.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/white.ts.fld ./warfield/head-mesh-fixed-reduced.labels.tvc.fld ./warfield/head-mesh-fixed-reduced.tvd.fld ./warfield/head-mesh.labels.tvc.fld ./warfield/head-mesh.tvd.fld ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5172 5171 2008-07-19T21:01:32Z Mjc 35 wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == <nowiki> ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/15y-brain-labels.tvc.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/air.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/fluid.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/grey.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/lesion.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/surf.ts.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/tets.tv.fld ./warfield/15y-brain/crj/mesh/junctions/points-sf3.0/white.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/15y-brain-labels-high-res.tvc.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/15y-brain-labels.tvc.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/air.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/fluid.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/grey.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/lesion.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/surf.ts.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/tets.tv.fld ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/white.ts.fld ./warfield/head-mesh-fixed-reduced.labels.tvc.fld ./warfield/head-mesh-fixed-reduced.tvd.fld ./warfield/head-mesh.labels.tvc.fld ./warfield/head-mesh.tvd.fld </nowiki> == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5173 5172 2008-07-19T21:32:24Z Mjc 35 /* Simon Warfield */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == ==== high resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ 15y-brain-labels-high-res.tvc.fld ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ 15y-brain-labels.tvc.fld ==== Tri-Surfs ==== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld ./warfield/head-mesh-fixed-reduced.labels.tvc.fld ./warfield/head-mesh-fixed-reduced.tvd.fld ./warfield/head-mesh.labels.tvc.fld ./warfield/head-mesh.tvd.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5174 5173 2008-07-19T21:34:00Z Mjc 35 /* high resolution */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ==== TetVol ==== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ 15y-brain-labels.tvc.fld ==== Tri-Surfs ==== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld ./warfield/head-mesh-fixed-reduced.labels.tvc.fld ./warfield/head-mesh-fixed-reduced.tvd.fld ./warfield/head-mesh.labels.tvc.fld ./warfield/head-mesh.tvd.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5175 5174 2008-07-19T21:38:25Z Mjc 35 /* Tri-Surfs */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ==== TetVol ==== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ 15y-brain-labels.tvc.fld ==== Tri-Surfs ==== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld == Head with Skull == Located in : ./warfield/ ===== TetVol ===== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5176 5175 2008-07-19T21:39:06Z Mjc 35 /* Simon Warfield */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ==== TetVol ==== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ 15y-brain-labels.tvc.fld ==== Tri-Surfs ==== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld == Head with Skull == Located in : ./warfield/ ===== TetVol ===== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5177 5176 2008-07-19T21:39:18Z Mjc 35 /* Head with Skull */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ==== TetVol ==== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ 15y-brain-labels.tvc.fld ==== Tri-Surfs ==== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ===== TetVol ===== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5178 5177 2008-07-19T21:44:30Z Mjc 35 /* TetVol */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ==== TetVol ==== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ 15y-brain-labels.tvc.fld ==== Tri-Surfs ==== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5179 5178 2008-07-19T21:48:19Z Mjc 35 /* TetVol */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ 15y-brain-labels.tvc.fld ==== Tri-Surfs ==== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5180 5179 2008-07-19T21:48:40Z Mjc 35 /* Tri-Surfs */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ 15y-brain-labels.tvc.fld ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5181 5180 2008-07-19T21:49:35Z Mjc 35 /* Low Resolution */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == <nowiki ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso-test-ma/junctions/points-sf3/torso.ts.fld ./mattjolley/2y-torso-test-ma/air-mc.pc.fld ./mattjolley/2y-torso-test-ma/bone-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart-mc.pc.fld ./mattjolley/2y-torso-test-ma/lung-mc.pc.fld ./mattjolley/2y-torso-test-ma/torso-mc.pc.fld ./mattjolley/2y-torso-test-ma/heart_ma.pcv.fld ./mattjolley/2y-torso-test-ma/torso-tc_surf.off.ts.fld ./mattjolley/2y-torso-test-ma/torso_ma.pcv.fld ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128-minedge/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-128/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg-256/mat9.ts.fld ./mattjolley/NRRDData/10y-32kg/mat0.ts.fld ./mattjolley/NRRDData/10y-32kg/mat10.ts.fld ./mattjolley/NRRDData/10y-32kg/mat7.ts.fld ./mattjolley/NRRDData/10y-32kg/mat8.ts.fld ./mattjolley/NRRDData/10y-32kg/mat9.ts.fld ./mattjolley/10y-torso-50vol.tvd.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf2.tvd.fld ./mattjolley/10y-torso-sf3.tvd.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld ./mattjolley/10y-torso.tvd.fld ./mattjolley/29y-torso-sf3.tvd.fld ./mattjolley/2y-torso-sf3.tvd.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld </nowiki> <nowiki> ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5182 5181 2008-07-19T21:56:47Z Mjc 35 /* Matt Jolley */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5183 5182 2008-07-19T21:57:18Z Mjc 35 /* Simon Warfield */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === ./warfield/15y-brain/crj/15y-brain-high-res.png ./warfield/15y-brain/crj/surf-edges-sf1.png ./warfield/fixed-reduced-surfs-edges.png ./warfield/missing-skin.png ./warfield/s1.png ./warfield/seg-problem.png ./warfield/skin-orig-ma.png ./warfield/skin-ray-ma.png ./warfield/tet-edges-fixed-reduced.png ./warfield/tet-edges.png ./warfield/tets-labeled-clipped-fixed-reduced.png ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5184 5183 2008-07-19T21:58:07Z Mjc 35 /* Images */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5185 5184 2008-07-19T22:05:02Z Mjc 35 /* TetVol */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </code></pre> ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5186 5185 2008-07-19T22:05:36Z Mjc 35 /* TetVol */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5187 5186 2008-07-19T22:11:35Z Mjc 35 /* Low Resolution */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5188 5187 2008-07-19T22:16:50Z Mjc 35 /* TetVol */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ===== Stats:(still to come) ===== stats here ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5189 5188 2008-07-19T22:17:09Z Mjc 35 /* Stats:(still to come) */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki 5194 5189 2008-07-25T04:39:39Z Mjc 35 /* 40y torso */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == === lowres === {code}{pre} Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 {/pre}{/code} 5195 5194 2008-07-25T04:40:19Z Mjc 35 /* lowres */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == === lowres === <code><pre> Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 </pre></code> 5196 5195 2008-07-25T04:44:56Z Mjc 35 /* lowres */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == ==== TriSurf ==== Fangxiang/psys/junctions/points-sf3/ * surf.ts.fld * ventricle.ts.fld * tets.tv.fld * csf.ts.fld * skull.ts.fld * air.ts.fld * scalp.ts.fld * white.ts.fld * grey.ts.fld ==== TetVol ==== Fangxiang/psys/junctions/points-sf3/ brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 </pre></code> 5197 5196 2008-07-25T04:45:57Z Mjc 35 /* Fangxiang */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == ==== Images ==== * ./clipped-labeled-tets.png * ./clipped-labeled-tets2.png ==== TriSurf ==== Fangxiang/psys/junctions/points-sf3/ * surf.ts.fld * ventricle.ts.fld * tets.tv.fld * csf.ts.fld * skull.ts.fld * air.ts.fld * scalp.ts.fld * white.ts.fld * grey.ts.fld ==== TetVol ==== Fangxiang/psys/junctions/points-sf3/ brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 </pre></code> 5198 5197 2008-07-30T02:46:22Z Mjc 35 /* TriSurf */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == ==== Images ==== * ./clipped-labeled-tets.png * ./clipped-labeled-tets2.png ==== TriSurf ==== Fangxiang/psys/junctions/points-sf3/ <code><pre> Number of Tri elements checked = 321532 Euler characteristics for this mesh indicate -9 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 321532 Edges: 477196 Nodes: 155647 Area: Low = 2.82843e-07, Average = 1.70254, High = 77.8086 Minimum_Angle: Low = 0.00236079, Average = 44.969, High = 59.9776 Maximum_Angle: Low = 60.0355, Average = 78.5486, High = 174.548 Condition: Low = 1, Average = 1.85798, High = 14012.1 Scaled_Jacobian: Low = 4.75779e-05, Average = 0.808549, High = 0.999775 Shape: Low = 7.13668e-05, Average = 0.904197, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 7.58895e-05, Average = 0.887555, High = 1 </pre></code> * surf.ts.fld * ventricle.ts.fld * tets.tv.fld * csf.ts.fld * skull.ts.fld * air.ts.fld * scalp.ts.fld * white.ts.fld * grey.ts.fld ==== TetVol ==== Fangxiang/psys/junctions/points-sf3/ brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 </pre></code> 5199 5198 2008-07-30T02:47:48Z Mjc 35 /* Tri-Surfs */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== <code><pre> Number of Tri elements checked = 450945 Euler characteristics for this mesh indicate -106 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 450945 Edges: 668999 Nodes: 217844 Area: Low = 5.40833e-07, Average = 0.993502, High = 67.7948 Minimum_Angle: Low = 0.0052897, Average = 44.891, High = 59.9605 Maximum_Angle: Low = 60.0215, Average = 78.6624, High = 168.551 Condition: Low = 1, Average = 1.18465, High = 6253.61 Scaled_Jacobian: Low = 0.000106605, Average = 0.807944, High = 0.999602 Shape: Low = 0.000159908, Average = 0.904373, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 0.000184293, Average = 0.887842, High = 1 </pre></code> * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == ==== Images ==== * ./clipped-labeled-tets.png * ./clipped-labeled-tets2.png ==== TriSurf ==== Fangxiang/psys/junctions/points-sf3/ <code><pre> Number of Tri elements checked = 321532 Euler characteristics for this mesh indicate -9 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 321532 Edges: 477196 Nodes: 155647 Area: Low = 2.82843e-07, Average = 1.70254, High = 77.8086 Minimum_Angle: Low = 0.00236079, Average = 44.969, High = 59.9776 Maximum_Angle: Low = 60.0355, Average = 78.5486, High = 174.548 Condition: Low = 1, Average = 1.85798, High = 14012.1 Scaled_Jacobian: Low = 4.75779e-05, Average = 0.808549, High = 0.999775 Shape: Low = 7.13668e-05, Average = 0.904197, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 7.58895e-05, Average = 0.887555, High = 1 </pre></code> * surf.ts.fld * ventricle.ts.fld * tets.tv.fld * csf.ts.fld * skull.ts.fld * air.ts.fld * scalp.ts.fld * white.ts.fld * grey.ts.fld ==== TetVol ==== Fangxiang/psys/junctions/points-sf3/ brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 </pre></code> 5200 5199 2008-07-30T02:54:01Z Mjc 35 /* high resolution */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TriSurf ===== <code><pre> Number of Tri elements checked = 3510322 Euler characteristics for this mesh indicate 405 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 3510322 Edges: 5242493 Nodes: 1732983 Area: Low = 8.51836e-07, Average = 0.129621, High = 99.1556 Minimum_Angle: Low = 0.00745434, Average = 48.8617, High = 59.9862 Maximum_Angle: Low = 60.0098, Average = 74.6795, High = 176.854 Condition: Low = 1, Average = 1.10108, High = 4437.65 Scaled_Jacobian: Low = 0.00015023, Average = 0.864754, High = 0.999861 Shape: Low = 0.000225345, Average = 0.94057, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 0.000259467, Average = 0.929397, High = 1 </pre><code> ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== <code><pre> Number of Tri elements checked = 450945 Euler characteristics for this mesh indicate -106 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 450945 Edges: 668999 Nodes: 217844 Area: Low = 5.40833e-07, Average = 0.993502, High = 67.7948 Minimum_Angle: Low = 0.0052897, Average = 44.891, High = 59.9605 Maximum_Angle: Low = 60.0215, Average = 78.6624, High = 168.551 Condition: Low = 1, Average = 1.18465, High = 6253.61 Scaled_Jacobian: Low = 0.000106605, Average = 0.807944, High = 0.999602 Shape: Low = 0.000159908, Average = 0.904373, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 0.000184293, Average = 0.887842, High = 1 </pre></code> * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == ==== Images ==== * ./clipped-labeled-tets.png * ./clipped-labeled-tets2.png ==== TriSurf ==== Fangxiang/psys/junctions/points-sf3/ <code><pre> Number of Tri elements checked = 321532 Euler characteristics for this mesh indicate -9 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 321532 Edges: 477196 Nodes: 155647 Area: Low = 2.82843e-07, Average = 1.70254, High = 77.8086 Minimum_Angle: Low = 0.00236079, Average = 44.969, High = 59.9776 Maximum_Angle: Low = 60.0355, Average = 78.5486, High = 174.548 Condition: Low = 1, Average = 1.85798, High = 14012.1 Scaled_Jacobian: Low = 4.75779e-05, Average = 0.808549, High = 0.999775 Shape: Low = 7.13668e-05, Average = 0.904197, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 7.58895e-05, Average = 0.887555, High = 1 </pre></code> * surf.ts.fld * ventricle.ts.fld * tets.tv.fld * csf.ts.fld * skull.ts.fld * air.ts.fld * scalp.ts.fld * white.ts.fld * grey.ts.fld ==== TetVol ==== Fangxiang/psys/junctions/points-sf3/ brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 </pre></code> 5201 5200 2008-07-30T02:54:30Z Mjc 35 /* TriSurf */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TriSurf ===== <code><pre> Number of Tri elements checked = 3510322 Euler characteristics for this mesh indicate 405 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 3510322 Edges: 5242493 Nodes: 1732983 Area: Low = 8.51836e-07, Average = 0.129621, High = 99.1556 Minimum_Angle: Low = 0.00745434, Average = 48.8617, High = 59.9862 Maximum_Angle: Low = 60.0098, Average = 74.6795, High = 176.854 Condition: Low = 1, Average = 1.10108, High = 4437.65 Scaled_Jacobian: Low = 0.00015023, Average = 0.864754, High = 0.999861 Shape: Low = 0.000225345, Average = 0.94057, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 0.000259467, Average = 0.929397, High = 1 </pre></code> ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== <code><pre> Number of Tri elements checked = 450945 Euler characteristics for this mesh indicate -106 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 450945 Edges: 668999 Nodes: 217844 Area: Low = 5.40833e-07, Average = 0.993502, High = 67.7948 Minimum_Angle: Low = 0.0052897, Average = 44.891, High = 59.9605 Maximum_Angle: Low = 60.0215, Average = 78.6624, High = 168.551 Condition: Low = 1, Average = 1.18465, High = 6253.61 Scaled_Jacobian: Low = 0.000106605, Average = 0.807944, High = 0.999602 Shape: Low = 0.000159908, Average = 0.904373, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 0.000184293, Average = 0.887842, High = 1 </pre></code> * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == ==== Images ==== * ./clipped-labeled-tets.png * ./clipped-labeled-tets2.png ==== TriSurf ==== Fangxiang/psys/junctions/points-sf3/ <code><pre> Number of Tri elements checked = 321532 Euler characteristics for this mesh indicate -9 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 321532 Edges: 477196 Nodes: 155647 Area: Low = 2.82843e-07, Average = 1.70254, High = 77.8086 Minimum_Angle: Low = 0.00236079, Average = 44.969, High = 59.9776 Maximum_Angle: Low = 60.0355, Average = 78.5486, High = 174.548 Condition: Low = 1, Average = 1.85798, High = 14012.1 Scaled_Jacobian: Low = 4.75779e-05, Average = 0.808549, High = 0.999775 Shape: Low = 7.13668e-05, Average = 0.904197, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 7.58895e-05, Average = 0.887555, High = 1 </pre></code> * surf.ts.fld * ventricle.ts.fld * tets.tv.fld * csf.ts.fld * skull.ts.fld * air.ts.fld * scalp.ts.fld * white.ts.fld * grey.ts.fld ==== TetVol ==== Fangxiang/psys/junctions/points-sf3/ brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 </pre></code> 5202 5201 2008-07-30T02:56:50Z Mjc 35 /* Head with Skull */ wikitext text/x-wiki = Collaborator Meshes = == Simon Warfield == === Images === * ./warfield/15y-brain/crj/15y-brain-high-res.png * ./warfield/15y-brain/crj/surf-edges-sf1.png * ./warfield/fixed-reduced-surfs-edges.png * ./warfield/missing-skin.png * ./warfield/s1.png * ./warfield/seg-problem.png * ./warfield/skin-orig-ma.png * ./warfield/skin-ray-ma.png * ./warfield/tet-edges-fixed-reduced.png * ./warfield/tet-edges.png * ./warfield/tets-labeled-clipped-fixed-reduced.png * ./warfield/tets-labeled-clipped.png === 15y data set === ==== high resolution ==== '''Located in :''' ./warfield/15y-brain/crj/mesh2/junctions/points-sf1.0/ ===== TriSurf ===== <code><pre> Number of Tri elements checked = 3510322 Euler characteristics for this mesh indicate 405 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 3510322 Edges: 5242493 Nodes: 1732983 Area: Low = 8.51836e-07, Average = 0.129621, High = 99.1556 Minimum_Angle: Low = 0.00745434, Average = 48.8617, High = 59.9862 Maximum_Angle: Low = 60.0098, Average = 74.6795, High = 176.854 Condition: Low = 1, Average = 1.10108, High = 4437.65 Scaled_Jacobian: Low = 0.00015023, Average = 0.864754, High = 0.999861 Shape: Low = 0.000225345, Average = 0.94057, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 0.000259467, Average = 0.929397, High = 1 </pre></code> ===== TetVol ===== 15y-brain-labels-high-res.tvc.fld <code><pre> Number of Tet elements checked = 15561759 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 15561759 Faces: 31326612 Edges: 18488223 Nodes: 2723368 Aspect Ratio: Low = 1.00005, Average = 2.80414, High = 1.28932e+06 Aspect Ratio (gamma): Low = 1.00072, Average = 10.5797, High = 1.13043e+07 Volume: Low = 1.31597e-15, Average = 0.117654, High = 28.8929 Condition: Low = 1.00004, Average = 1.91317, High = 28009.3 Jacobian: Low = 7.89581e-15, Average = 0.705924, High = 173.358 Scaled_Jacobian: Low = 3.12968e-08, Average = 0.357157, High = 0.996228 Shape: Low = 1.98623e-05, Average = 0.637944, High = 0.999959 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 </pre> </code> ==== Low Resolution ==== ./warfield/15y-brain/crj/mesh2/junctions/points-sf3.0/ ===== TetVol ===== 15y-brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1765216 Euler characteristics for this mesh indicate 2 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1765216 Faces: 3556676 Edges: 2087737 Nodes: 296275 Aspect Ratio: Low = 1.00075, Average = 2.38652, High = 97188.1 Aspect Ratio (gamma): Low = 1.00105, Average = 25.3265, High = 8.96232e+06 Volume: Low = 2.44047e-11, Average = 1.03395, High = 46.7089 Condition: Low = 1.0007, Average = 1.93902, High = 12236.2 Jacobian: Low = 1.46428e-10, Average = 6.20368, High = 280.254 Scaled_Jacobian: Low = 3.94489e-08, Average = 0.400344, High = 0.989018 Shape: Low = 2.31768e-05, Average = 0.662847, High = 0.999299 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 1.02893e-05, Average = 0.6094, High = 0.999252 </pre></code> ===== Tri-Surfs ===== <code><pre> Number of Tri elements checked = 450945 Euler characteristics for this mesh indicate -106 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 450945 Edges: 668999 Nodes: 217844 Area: Low = 5.40833e-07, Average = 0.993502, High = 67.7948 Minimum_Angle: Low = 0.0052897, Average = 44.891, High = 59.9605 Maximum_Angle: Low = 60.0215, Average = 78.6624, High = 168.551 Condition: Low = 1, Average = 1.18465, High = 6253.61 Scaled_Jacobian: Low = 0.000106605, Average = 0.807944, High = 0.999602 Shape: Low = 0.000159908, Average = 0.904373, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 0.000184293, Average = 0.887842, High = 1 </pre></code> * surf.ts.fld (input to TetGen) * air.ts.fld * fluid.ts.fld * grey.ts.fld * lesion.ts.fld * white.ts.fld === Head with Skull === Located in : ./warfield/ ==== TriSurf ==== <code><pre> Number of Tri elements checked = 265989 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 265989 Edges: 397191 Nodes: 131203 Area: Low = 0.000792772, Average = 2.7208, High = 45.2868 Minimum_Angle: Low = 4.0295, Average = 45.0137, High = 59.9607 Maximum_Angle: Low = 60.0507, Average = 78.6354, High = 165.542 Condition: Low = 1, Average = 1.11618, High = 8.24442 Scaled_Jacobian: Low = 0.0811409, Average = 0.809923, High = 0.999604 Shape: Low = 0.121294, Average = 0.906176, High = 0.999999 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 0.0312404, Average = 0.889327, High = 0.999999 </pre></code> ==== TetVol ==== head-mesh-fixed-reduced.labels.tvc.fld <code><pre> Number of Tet elements checked = 1067541 Euler characteristics for this mesh indicate 0 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1067541 Faces: 2148701 Edges: 1260802 Nodes: 179643 Aspect Ratio: Low = 1.00064, Average = 1.85343, High = 74.9528 Aspect Ratio (gamma): Low = 1.00087, Average = 2.05658, High = 145.493 Volume: Low = 2.18251e-05, Average = 5.87778, High = 242.399 Condition: Low = 1.00058, Average = 1.68179, High = 27.3222 Jacobian: Low = 0.000130951, Average = 35.2667, High = 1454.4 Scaled_Jacobian: Low = 0.00244018, Average = 0.404027, High = 0.989514 Shape: Low = 0.0361498, Average = 0.669036, High = 0.999418 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 0.0133417, Average = 0.608034, High = 0.999358 </pre></code> == Matt Jolley == === 10y torso === ==== High Resolution ==== ./mattjolley/10y-torso/junctions/points-sf2/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf2/torso.ts.fld ==== Medium Resolution ==== ./mattjolley/10y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf-0.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf3/torso.ts.fld ==== Low Resolution ==== ./mattjolley/10y-torso/junctions/points-sf4/surf.ts.fld ./mattjolley/10y-torso/junctions/points-sf4/blah.ts.fld === 29y torso === ./mattjolley/29y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/29y-torso/junctions/points-sf3/torso.ts.fld === 2y torso === ./mattjolley/2y-torso/junctions/points-sf3/air.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/bone.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/heart.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/lung.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/surf.ts.fld ./mattjolley/2y-torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-sf2-labels.tvc.fld ./mattjolley/10y-torso-sf4-labels.tvc.fld === 40y torso === ./mattjolley/40y-torso/torso/junctions/points-sf3/40y-torso-sf3-labels.tvc.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/air.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/blood.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/bone.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/heart.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/lung.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/surf.ts.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/tets.tv.fld ./mattjolley/40y-torso/torso/junctions/points-sf3/torso.ts.fld ./mattjolley/10y-torso-cut-heart-bone.png ./mattjolley/10y-torso-cut-lung-bone.png ./mattjolley/10y-torso-edges.png ./mattjolley/10y-torso-sf2-cut-heart-bone.png ./mattjolley/10y-torso-sf2-cut-lung-bone.png ./mattjolley/10y-torso-sf2-edges.png ./mattjolley/10y-torso-sf2-surfs-cut.png ./mattjolley/10y-torso-sf2-surfs-cut2.png ./mattjolley/10y-torso-sf2-surfs-cut3.png ./mattjolley/10y-torso-sf2-surfs.png ./mattjolley/29y-torso-edges.png ./mattjolley/2y-torso-sf3-edges.png ./mattjolley/40y-torso/40y-torso-surfs-edges-clipped.png ./mattjolley/40y-torso/40y-torso-surfs-edges.png </nowiki == Fangxiang == ==== Images ==== * ./clipped-labeled-tets.png * ./clipped-labeled-tets2.png ==== TriSurf ==== Fangxiang/psys/junctions/points-sf3/ <code><pre> Number of Tri elements checked = 321532 Euler characteristics for this mesh indicate -9 holes in this block of elements. (Assumes a single contiguous block of elements.) Tris: 321532 Edges: 477196 Nodes: 155647 Area: Low = 2.82843e-07, Average = 1.70254, High = 77.8086 Minimum_Angle: Low = 0.00236079, Average = 44.969, High = 59.9776 Maximum_Angle: Low = 60.0355, Average = 78.5486, High = 174.548 Condition: Low = 1, Average = 1.85798, High = 14012.1 Scaled_Jacobian: Low = 4.75779e-05, Average = 0.808549, High = 0.999775 Shape: Low = 7.13668e-05, Average = 0.904197, High = 1 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Inv Radius Ratio: Low = 7.58895e-05, Average = 0.887555, High = 1 </pre></code> * surf.ts.fld * ventricle.ts.fld * tets.tv.fld * csf.ts.fld * skull.ts.fld * air.ts.fld * scalp.ts.fld * white.ts.fld * grey.ts.fld ==== TetVol ==== Fangxiang/psys/junctions/points-sf3/ brain-labels.tvc.fld <code><pre> Number of Tet elements checked = 1190125 Euler characteristics for this mesh indicate 20 holes in this block of elements. (Assumes a single contiguous block of elements.) Element counts: Tets: 1190125 Faces: 2411973 Edges: 1429334 Nodes: 207448 Aspect Ratio: Low = 1.00006, Average = 2.34331, High = 19518.4 Aspect Ratio (gamma): Low = 1.00008, Average = 16.6877, High = 3.91792e+06 Volume: Low = 1e-10, Average = 2.74514, High = 265.35 Condition: Low = 1.00005, Average = 2.26923, High = 23606.9 Jacobian: Low = 6e-10, Average = 16.4708, High = 1592.1 Scaled_Jacobian: Low = 9.02408e-08, Average = 0.413604, High = 0.997311 Shape: Low = 4.02374e-05, Average = 0.6764, High = 0.999947 Shape_Size: Low = 0, Average = 0, High = 0 Distortion: Low = 1, Average = 1, High = 1 Radius Ratio: Low = 5.12337e-05, Average = 0.621546, High = 0.999938 </pre></code> Main Page 0 1 5190 5158 2008-07-23T22:08:40Z Jeroen 19 /* Meshing Portal */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] CIBC:SCIRun4 0 2607 5191 2008-07-23T22:15:04Z Jeroen 19 wikitext text/x-wiki ==SCIRun 4.0== ===Time line=== Version 4.0.0 ETA early August (current estimate around August 3rd) * No more dynamic compilation for 98% of SCIRun * New look for SCIRun windows * OSX binaries/ Windows binaries done ===To do list=== * Convert clipping modules: hook up new parser with clipping functionality * Integrate remainder of ModelCreation into main SCIRun * Cleanup Jason's Hexahedral tools * Merge standalone converters into SCIRun ===Module todo list=== ===Bug todo list=== * Math integrators for streamlines is faulty, only cell walk works * Jacobi solver is broken 5192 5191 2008-07-23T22:15:54Z Jeroen 19 /* Time line */ wikitext text/x-wiki ==SCIRun 4.0== ===Time line=== Version 4.0.0 ETA early August (current estimate around August 3rd) * No more dynamic compilation for 98% of SCIRun * New look for SCIRun windows * OSX binaries/ Windows binaries done * Commonly used modules all work without compiler ===To do list=== * Convert clipping modules: hook up new parser with clipping functionality * Integrate remainder of ModelCreation into main SCIRun * Cleanup Jason's Hexahedral tools * Merge standalone converters into SCIRun ===Module todo list=== ===Bug todo list=== * Math integrators for streamlines is faulty, only cell walk works * Jacobi solver is broken 5193 5192 2008-07-23T22:17:24Z Jeroen 19 /* SCIRun 4.0 */ wikitext text/x-wiki ==SCIRun 4.0== ===Time line=== Version 4.0.0 ETA early August (current estimate around August 3rd) * No more dynamic compilation for 98% of SCIRun * New look for SCIRun windows * OSX binaries/ Windows binaries done * Commonly used modules all work without compiler ===To do list=== * Convert clipping modules: hook up new parser with clipping functionality * Integrate remainder of ModelCreation into main SCIRun * Cleanup Jason's Hexahedral tools * Merge standalone converters into SCIRun * Need to build LinALg Parser, that parses Matrix additions, subtraction, multiplactions ===Module todo list=== ===Bug todo list=== * Math integrators for streamlines is faulty, only cell walk works * Jacobi solver is broken CIBC:Meshing pipeline 0 2608 5205 2008-09-24T20:08:27Z Ayla 57 Rough outline of meshing pipeline wikitext text/x-wiki 1. Create inputs 2. Create material 3. Create sizing field 5206 5205 2008-09-24T21:45:33Z Darrell 59 wikitext text/x-wiki 1. Sart with .nrrd files with one or more label maps 2. Create settings file: example_bm3d_settings.py 3. Run script: gen_particle_sys_inputs.py Command python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field 4. Run script: create_junction_dir.py Command python ./create_junction_dirs.py [number of materials] Input [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. 5. Create a file in the Junctions directory called m1.txt m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. 6. Create a seeds directory. mkdir seeds 7. Run script: gen_seeds.py Command python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. 8. Run the particle system: rendersf3d from the directory with the .nrrd files Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit 9. Write out points. 10. Run script: pts2tets.py from the main directory with the settings file Command python ./pts2tets.py junctions Input the junctions directory you want to optimize Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. 11. Read .fld into scirun. use the readfield module 12. Mesh inner volume of surfaces with tetgen use the interfacewithTetgen module 5207 5206 2008-09-24T21:49:41Z Darrell 59 wikitext text/x-wiki '''1. Sart with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command python ./create_junction_dirs.py [number of materials] Input [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command python ./pts2tets.py junctions Input the junctions directory you want to optimize Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module 5208 5207 2008-09-24T21:50:47Z Darrell 59 wikitext text/x-wiki '''1. Sart with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command python ./create_junction_dirs.py [number of materials] Input [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command python ./pts2tets.py junctions Input the junctions directory you want to optimize Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module 5209 5208 2008-09-24T21:52:14Z Darrell 59 wikitext text/x-wiki '''1. Sart with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command: python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command: python ./create_junction_dirs.py [number of materials] Input: [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command: python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command: python ./pts2tets.py junctions Input the junctions directory you want to optimize Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module 5210 5209 2008-09-24T21:55:06Z Darrell 59 wikitext text/x-wiki '''1. Sart with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command: python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command: python ./create_junction_dirs.py [number of materials] Input: [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command: python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command: python ./pts2tets.py junctions Input the junctions directory you want to optimize Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module CIBC:Meshing pipeline 0 2608 5211 5210 2008-09-24T21:55:33Z Darrell 59 wikitext text/x-wiki '''1. Sart with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command: python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command: python ./create_junction_dirs.py [number of materials] Input: [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command: python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands: spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command: python ./pts2tets.py junctions Input the junctions directory you want to optimize Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module 5212 5211 2008-09-24T21:56:01Z Darrell 59 wikitext text/x-wiki '''1. Sart with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command: python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command: python ./create_junction_dirs.py [number of materials] Input: [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command: python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands: spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command: python ./pts2tets.py junctions Input: the junctions directory you want to optimize Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module 5213 5212 2008-09-24T22:00:17Z Darrell 59 wikitext text/x-wiki '''1. Sart with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command: python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command: python ./create_junction_dirs.py [number of materials] Input: [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command: python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands: spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command: python ./pts2tets.py junctions Input: the junctions directory you want to optimize Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module 5215 5213 2008-09-24T22:17:13Z Darrell 59 wikitext text/x-wiki '''1. Sart with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command: python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command: python ./create_junction_dirs.py [number of materials] Input: [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command: python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands: spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command: python ./pts2tets.py junctions Input: the junctions directory you have optimized Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module 5221 5215 2008-10-10T23:56:38Z Ayla 57 wikitext text/x-wiki '''1. Start with .nrrd files with one or more label maps''' ---- '''2. Create settings file: example_bm3d_settings.py''' ---- '''3. Run script: gen_particle_sys_inputs.py''' Command: python ./gen_particle_sys_inputs.py example.nrrd a. Breaks label maps into multiple materials b. Resamples and pads .nrrd files c. Runs a tightening algorithm d. Creates a medial axis file e. Converts .nrrds to .vol f. Creates sizing field ---- '''4. Run script: create_junction_dir.py''' Command: python ./create_junction_dirs.py [number of materials] Input: [number of materials] a. Creates directories that contain two files: particle_params.txt and psystem_input.txt particle_params.txt: List of materials and parameters for anisotropy/isotropy. psystem_input.txt: Paths and inputs to the particle system. ---- '''5. Create a file in the Junctions directory called m1.txt''' m1.txt indicates which junctions you want to optimize the particle spacing and paths to the seed files for each junction. ---- '''6. Create a seeds directory.''' mkdir seeds ---- '''7. Run script: gen_seeds.py''' Command: python ./create_seeds.py Creates files of all possible junctions q -> quad, t-> triple, and d -> double in the seeds directory. ---- '''8. Run the particle system: rendersf3d from the directory with the .nrrd files''' Command: /path/miriah/Multisurfaces/rendersf3d junctions/psystem_input.txt rendersf3d commands: spacebar: optimize/pause w: write points d: delete double points on triple junctions q: quit ---- '''9. Write out points.''' ---- '''10. Run script: pts2tets.py from the main directory with the settings file''' Command: python ./pts2tets.py junctions Input: the junctions directory you have optimized Formats the points so they can be used by tetgen. Then runs tetgen to create a delany surfaces. It then formats the data into a .fld and .m files so it can be read by scirun and matlab. ---- '''11. Read .fld into scirun.''' use the readfield module ---- '''12. Mesh inner volume of surfaces with tetgen''' use the interfacewithTetgen module CIBC:Meshing 0 2603 5214 5168 2008-09-24T22:10:05Z Ayla 57 Add wiki link to pipeline page. wikitext text/x-wiki =Meshing = ''This list should be edited by Chris and the meshing group, to best utilize Marty's consulting time according to ncrr priorities. Marty will remove items when completed.'' meshing task list: # Developers help (compilation and usage) # Organize completed model data on sci filesystem and wiki # '''Create Mesh''' - 10y torso w/ blood volume (matt jolley) # move particle rendering to SCIRun. # move particle optimizers to SCIRun/algo. # make particle system run threaded jobs per junction type. # detect empty junction instead of crashing. # automate writing output files when complete. # fix bug with double junction particles ending up on triple junction. [[CIBC:Meshing pipeline| meshing pipeline]] [[CIBC:Meshing Results| collaborator meshing results]] [[CIBC:Meshing compiling| compiling/running]] [[CIBC:Meshing completed models| completed mesh projects]] CIBC:Meshing compiling 0 2604 5216 5166 2008-10-10T22:55:42Z Ayla 57 Updating Vispack. wikitext text/x-wiki == Building the Code == Checkout the folowing repositories: * https://code.sci.utah.edu/svn/people/miriah * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher useable PowerApp. === Install Teem === * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === * follow the [http://glew.sourceforge.net/install.html instructions]. === Build vispack === We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. Vispack depends on [http://sourceforge.net/projects/teem Teem]. ==== Cmake ==== Use Cmake 2.6. * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? * add lapack link. liblapack1.so to liblapack.so === Build miriah === ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] First try synaptic or Yast or whatever precompiled options your system has.. Ubuntu has this ready to go. * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah ** CMAKE_BUILD_TYPE: Release ** GLEW_INCLUDE: <path to your installation>/glew/include ** GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? ** VISPACK_DIR: <path to your checkout> /vispack ** VISPACK_LIBS: <path to your binary dir> /vpbin/lib === Build SCIRun === The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) == Using the Code == === Scripts === Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts ==== example_bm3d_settings.py ==== Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. ==== gen_particle_sys_inputs.py ==== This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; ==== convert_crossings.py ==== This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py ==== create_junction_dirs.py ==== Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. ==== gen_seeds.py ==== Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. ==== pts2tets.py ==== After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. === Preprocessing Segmentation === This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. === Running the Particle System === === Building the TetVol === === Mapping Indices back to 1 index per material === 5217 5216 2008-10-10T23:14:31Z Ayla 57 Update miriah. wikitext text/x-wiki == Building the Code == Checkout the folowing repositories: * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. === Install Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === * follow the [http://glew.sourceforge.net/install.html instructions]. === Build vispack === We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. Vispack depends on [[CIBC:Meshing_compiling#Install_Teem|Teem]] and [http://www.netlib.org/lapack Lapack]. ==== Cmake ==== Use Cmake 2.6. * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM installation. * If necessary, create symbolic link from liblapack1.so to liblapack.so. === Build miriah === We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib]. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah ** CMAKE_BUILD_TYPE: Release ** GLEW_INCLUDE: <path to your installation>/glew/include ** GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? ** VISPACK_DIR: <path to your checkout> /vispack ** VISPACK_LIBS: <path to your binary dir> /vpbin/lib For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: ** CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI === Build SCIRun === The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) == Using the Code == === Scripts === Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts ==== example_bm3d_settings.py ==== Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. ==== gen_particle_sys_inputs.py ==== This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; ==== convert_crossings.py ==== This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py ==== create_junction_dirs.py ==== Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. ==== gen_seeds.py ==== Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. ==== pts2tets.py ==== After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. === Preprocessing Segmentation === This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. === Running the Particle System === === Building the TetVol === === Mapping Indices back to 1 index per material === 5218 5217 2008-10-10T23:31:16Z Ayla 57 Update miriah. wikitext text/x-wiki == Building the Code == Checkout the folowing repositories: * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. === Install Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === * follow the [http://glew.sourceforge.net/install.html instructions]. === Build vispack === We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. Vispack depends on [[CIBC:Meshing_compiling#Install_Teem|Teem]] and [http://www.netlib.org/lapack Lapack]. ===== OS X ===== The vecLib framework includes Lapack (linker option -framework veclib). ==== Cmake ==== Use Cmake 2.6. * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM installation. * If necessary, create symbolic link from liblapack1.so to liblapack.so. === Build miriah === We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib]. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. Install GLUI if necessary. ===== OS X ===== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah ** CMAKE_BUILD_TYPE: Release ** GLEW_INCLUDE: <path to your installation>/glew/include ** GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? ** VISPACK_DIR: <path to your checkout> /vispack ** VISPACK_LIBS: <path to your binary dir> /vpbin/lib ===== OS X ===== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: ** CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI === Build SCIRun === The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) == Using the Code == === Scripts === Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts ==== example_bm3d_settings.py ==== Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. ==== gen_particle_sys_inputs.py ==== This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; ==== convert_crossings.py ==== This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py ==== create_junction_dirs.py ==== Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. ==== gen_seeds.py ==== Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. ==== pts2tets.py ==== After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. === Preprocessing Segmentation === This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. === Running the Particle System === === Building the TetVol === === Mapping Indices back to 1 index per material === 5219 5218 2008-10-10T23:50:56Z Ayla 57 Updating miriah, vispack, thirdparty tools. wikitext text/x-wiki = Building the Code = Checkout the folowing repositories: * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repo's to make them useable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the useable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == === Install Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Install GLEW === Binaries are [http://glew.sourceforge.net available] for most platforms. Follow the installation [http://glew.sourceforge.net/install.html instructions]. === Install GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI]. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. ==== Cg ==== Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib]. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. == Build vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. Vispack depends on [[CIBC:Meshing_compiling#Install_Teem|Teem]] and [http://www.netlib.org/lapack Lapack]. ===== OS X ===== The vecLib framework includes Lapack (linker option -framework veclib). ==== Cmake ==== Use Cmake 2.6. * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM installation. * If necessary, create symbolic link from liblapack1.so to liblapack.so. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah ** CMAKE_BUILD_TYPE: Release ** GLEW_INCLUDE: <path to your installation>/glew/include ** GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? ** VISPACK_DIR: <path to your checkout> /vispack ** VISPACK_LIBS: <path to your binary dir> /vpbin/lib ** CXX_FLAGS: in addition to setting GLEW_INCLUDE, put include paths to GLEW, GLUI and Cg here ===== OS X ===== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: ** CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI == Build SCIRun == The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5220 5219 2008-10-10T23:56:09Z Ayla 57 Updating miriah, vispack, thirdparty tools. wikitext text/x-wiki = Building the Code = Checkout the folowing repositories: * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === GLEW === Binaries are [http://glew.sourceforge.net available] for most platforms. Follow the installation [http://glew.sourceforge.net/install.html instructions]. === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI]. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Install [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib]. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. == Build vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. ==== Cmake ==== Use Cmake 2.6. * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM installation. * If necessary, create symbolic link from liblapack1.so to liblapack.so. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. ==== Preprocessing only (no particle system) ==== * skip to cmake step. * make -k (ignore compilation errors) ==== Particle system enabled ==== * * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' ==== Cmake ==== * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah ** CMAKE_BUILD_TYPE: Release ** GLEW_INCLUDE: <path to your installation>/glew/include ** GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? ** VISPACK_DIR: <path to your checkout> /vispack ** VISPACK_LIBS: <path to your binary dir> /vpbin/lib ** CXX_FLAGS: in addition to setting GLEW_INCLUDE, put include paths to GLEW, GLUI and Cg here ===== OS X ===== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: ** CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI == Build SCIRun == The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5222 5220 2008-10-11T00:03:46Z Ayla 57 Updating miriah, vispack, thirdparty tools. wikitext text/x-wiki = Building the Code = Checkout the folowing repositories: * https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLEW === Miriah's code uses [http://glew.sourceforge.net available GLEW] to render visualization images for the particle system. Binaries are for most platforms: follow the installation [http://glew.sourceforge.net/install.html instructions]. ==== OS X ==== Download the GLX distribution. === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI] to render visualization images for the particle system. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Miriah's code uses [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] to render visualization images for the particle system. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. == Build Vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. === Cmake === Use Cmake 2.6. * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM installation. * If necessary, create symbolic link from liblapack1.so to liblapack.so. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. === Preprocessing only (no particle system) === * skip to cmake step. * make -k (ignore compilation errors) === Particle system enabled === * * cmake step * make ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' === Cmake === * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah ** CMAKE_BUILD_TYPE: Release ** GLEW_INCLUDE: <path to your installation>/glew/include ** GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? ** VISPACK_DIR: <path to your checkout> /vispack ** VISPACK_LIBS: <path to your binary dir> /vpbin/lib ** CXX_FLAGS: in addition to setting GLEW_INCLUDE, put include paths to GLEW, GLUI and Cg here ==== OS X ==== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: ** CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI == Build SCIRun == The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering eachothers output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5223 5222 2008-10-15T22:33:15Z Ayla 57 Add TetGen to thirdparty software. Add additional build info for SCIRun. wikitext text/x-wiki = Building the Code = At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLEW === Miriah's code uses [http://glew.sourceforge.net available GLEW] to render visualization images for the particle system. Binaries are for most platforms: follow the installation [http://glew.sourceforge.net/install.html instructions]. ==== OS X ==== Download the GLX distribution. === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI] to render visualization images for the particle system. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Miriah's code uses [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] to render visualization images for the particle system. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. === TetGen === SCIRun needs to be built with [TetGen http://tetgen.berlios.de/] library support enabled. The standalone TetGen application is also needed. Build TetGen from source following these [instructions http://tetgen.berlios.de/compile.html]. == Build Vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. === Cmake === Use Cmake 2.6. * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM installation. * If necessary, create symbolic link from liblapack1.so to liblapack.so. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. === Preprocessing only (no particle system) === * skip to cmake step. * make -k (ignore compilation errors) === Particle system enabled === * * cmake step * make === Cmake === * mkdir mir-opt; * cd mir-opt; * ccmake ../miriah ** CMAKE_BUILD_TYPE: Release ** GLEW_INCLUDE: <path to your installation>/glew/include ** GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a ** TEEM_DIR needs to point to your TEEM install path/lib/TEEM-?.?? ** VISPACK_DIR: <path to your checkout> /vispack ** VISPACK_LIBS: <path to your binary dir> /vpbin/lib ** CXX_FLAGS: in addition to setting GLEW_INCLUDE, put include paths to GLEW, GLUI and Cg here ==== OS X ==== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: ** CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI == Build SCIRun == Checkout SCIRun sources from [https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun Subversion]. We are currently using SCIRun revision 41237 for this project; other revisions may not work. The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering each others output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5224 5223 2008-10-16T23:35:53Z Ayla 57 quick and dirty edits to miriah wikitext text/x-wiki = Building the Code = At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLEW === Miriah's code uses [http://glew.sourceforge.net available GLEW] to render visualization images for the particle system. Binaries are for most platforms: follow the installation [http://glew.sourceforge.net/install.html instructions]. ==== OS X ==== Download the GLX distribution. === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI] to render visualization images for the particle system. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Miriah's code uses [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] to render visualization images for the particle system. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. === TetGen === SCIRun needs to be built with [TetGen http://tetgen.berlios.de/] library support enabled. The standalone TetGen application is also needed. Build TetGen from source following these [instructions http://tetgen.berlios.de/compile.html]. == Build Vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. === Cmake === Use Cmake 2.6. * mkdir vpbin; * cd vpbin; * ccmake ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM installation. * If necessary, create symbolic link from liblapack1.so to liblapack.so. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. === Preprocessing only (no particle system) === * skip to cmake step. * make -k (ignore compilation errors) === Particle system enabled === * * cmake step * make === Cmake === * ccmake -i . * set: CMAKE_CXX_FLAGS: -I/System/Library/Frameworks/GLUT.framework/Headers -I/Library/Frameworks/GLUI.framework/Headers -I/Users/jeroen/BM3D/glew/include CMAKE_EXE_LINKER_FLAGS: (os x opengl hack for os x) libGL -L/usr/X11/lib -framework GLUT (os x) -framework Cg (os x) -framework GLUI (or -llibname on linux) * CMAKE_BUILD_TYPE: Release * GLEW_INCLUDE: <path to your installation>/glew/include * GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a or libGLEW.dylib * GLUT_INCLUDE:... * GLUT_LIBRARY:... * OPENGL_INCLUDE_DIR: * OPENGL_gl_LIBRARY: * OPENGL_glu_LIBRARY: * TEEM_DIR needs to point to your TEEM install path/lib/(teem library) * VISPACK_DIR: <path to your checkout> /vispack (vispack build dir) * VISPACK_LIBS: <path to your binary dir> /vpbin/lib (path to vispack lib dir) ==== OS X ==== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: ** CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI == Build SCIRun == Checkout SCIRun sources from [https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun Subversion]. We are currently using SCIRun revision 41237 for this project; other revisions may not work. The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering each others output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5225 5224 2008-10-16T23:59:56Z Ayla 57 another quick and dirty edit wikitext text/x-wiki = Building the Code = At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLEW === Miriah's code uses [http://glew.sourceforge.net available GLEW] to render visualization images for the particle system. Binaries are for most platforms: follow the installation [http://glew.sourceforge.net/install.html instructions]. Build from source on OS X 10.5 (Leopard) ==== OS X 10.5 ==== Download source tarball. Modify src/include/GL/glew.h: Delete first code block wrapped by (line 223 -- show diff): #ifdef APPLE #endif Modify config/Makefile.darwin: Delete ifdef controlling GLX / AGL build - build GLX version. === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI] to render visualization images for the particle system. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Miriah's code uses [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] to render visualization images for the particle system. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. === TetGen === SCIRun needs to be built with [TetGen http://tetgen.berlios.de/] library support enabled. The standalone TetGen application is also needed. Build TetGen from source following these [instructions http://tetgen.berlios.de/compile.html]. == Build Vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. === Cmake === Use Cmake 2.6. * mkdir vpbin * cd vpbin * ccmake -i ../vispack ** set CMAKE_BUILD_TYPE to Release ** TEEM_DIR needs to point to your TEEM installation. * If necessary, create symbolic link from liblapack1.so to liblapack.so. * make == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. === Preprocessing only (no particle system) === * skip to cmake step. * make -k (ignore compilation errors) === Particle system enabled === * * cmake step * make === Cmake === * ccmake -i . * set: CMAKE_CXX_FLAGS: -I/System/Library/Frameworks/GLUT.framework/Headers -I/Library/Frameworks/GLUI.framework/Headers -I/Users/jeroen/BM3D/glew/include CMAKE_EXE_LINKER_FLAGS: (os x opengl hack for os x) libGL -L/usr/X11/lib -framework GLUT (os x) -framework Cg (os x) -framework GLUI (or -llibname on linux) * CMAKE_BUILD_TYPE: Release * GLEW_INCLUDE: <path to your installation>/glew/include * GLEW_LIBRARY: <path to your installation>/glew/lib/libGLEW.a or libGLEW.dylib * GLUT_INCLUDE:... * GLUT_LIBRARY:... * OPENGL_INCLUDE_DIR: * OPENGL_gl_LIBRARY: * OPENGL_glu_LIBRARY: * TEEM_DIR needs to point to your TEEM install path/lib/(teem library) * VISPACK_DIR: <path to your checkout> /vispack (vispack build dir) * VISPACK_LIBS: <path to your binary dir> /vpbin/lib (path to vispack lib dir) ==== OS X ==== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: ** CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI == Build SCIRun == Checkout SCIRun sources from [https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun Subversion]. We are currently using SCIRun revision 41519 for this project; other revisions may not work. The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. * apply patch... * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) * set TETGEN_DIR = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering each others output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5226 5225 2008-10-17T02:22:44Z Ayla 57 Cleanup build instructions. Add links to patches. wikitext text/x-wiki = Building the Code = At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLEW === Miriah's code uses [http://glew.sourceforge.net available GLEW] to render visualization images for the particle system. Binaries are for most platforms: follow the installation [http://glew.sourceforge.net/install.html instructions]. Build from source on OS X 10.5 (Leopard) ==== OS X 10.5 ==== Download source tarball and unpack. Download glew.h [http://software.sci.utah.edu/releases/patches/patch_glew_h.txt patch], save in glew directory and apply patch. <code> patch -p0 < patch_glew_h.txt </code> Download Makefile.darwin [http://software.sci.utah.edu/releases/patches/patch_Makefile_darwin.txt patch], save in glew directory and apply patch. <code> patch -p0 < patch_Makefile_darwin.txt </code> === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI] to render visualization images for the particle system. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Miriah's code uses [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] to render visualization images for the particle system. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. === TetGen === SCIRun needs to be built with [TetGen http://tetgen.berlios.de/] library support enabled. The standalone TetGen application is also needed. Build TetGen from source following these [instructions http://tetgen.berlios.de/compile.html]. == Build Vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. === Cmake === Use Cmake 2.6. <pre> mkdir vpbin<br> cd vpbin<br> ccmake -i ../vispack<br> </pre> CMake variables: <pre> CMAKE_BUILD_TYPE = Release TEEM_DIR = <path to TEEM installation> </pre> If necessary, create symbolic link from liblapack1.so to liblapack.so. Make in vpbin. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. === Preprocessing only (no particle system) === * skip to cmake step. * make -k (ignore compilation errors) === Particle system enabled === * cmake step * make === Cmake === <pre> ccmake -i . </pre> Set CMake variables: <pre> CMAKE_CXX_FLAGS = -I<path to GLUT include dir> -I<path to GLUI include dir> -I<path to glew include dir> CMAKE_EXE_LINKER_FLAGS = -L/usr/X11/lib, add GL, GLUT, GLUI and Cg libraries CMAKE_BUILD_TYPE = Release GLEW_INCLUDE = <path to your glew include dir>/glew/include GLEW_LIBRARY = <full path to your glew library> GLUT_INCLUDE:... GLUT_LIBRARY:... OPENGL_INCLUDE_DIR: OPENGL_gl_LIBRARY: OPENGL_glu_LIBRARY: TEEM_DIR needs to point to your TEEM install path/lib/(teem library) VISPACK_DIR: <path to your checkout> /vispack (vispack build dir) VISPACK_LIBS: <path to your binary dir> /vpbin/lib (path to vispack lib dir) </pre> ==== OS X ==== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: <pre> CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI </pre> == Build SCIRun == Checkout SCIRun sources from [https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun Subversion]. We are currently using SCIRun revision 41519 for this project; other revisions may not work. The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. Download the SCIRun [http://software.sci.utah.edu/releases/patches/patch_SCIRun_41519.txt patch], save the SCIRun/src directory and apply patch. <code> patch -p0 < patch_SCIRun_41519 </code> * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) * set TETGEN_DIR = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering each others output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5227 5226 2008-10-20T19:25:34Z Ayla 57 /* OS X */ wikitext text/x-wiki = Building the Code = At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLEW === Miriah's code uses [http://glew.sourceforge.net available GLEW] to render visualization images for the particle system. Binaries are for most platforms: follow the installation [http://glew.sourceforge.net/install.html instructions]. Build from source on OS X 10.5 (Leopard) ==== OS X 10.5 ==== Download source tarball and unpack. Download glew.h [http://software.sci.utah.edu/releases/patches/patch_glew_h.txt patch], save in glew directory and apply patch. <code> patch -p0 < patch_glew_h.txt </code> Download Makefile.darwin [http://software.sci.utah.edu/releases/patches/patch_Makefile_darwin.txt patch], save in glew directory and apply patch. <code> patch -p0 < patch_Makefile_darwin.txt </code> === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI] to render visualization images for the particle system. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Miriah's code uses [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] to render visualization images for the particle system. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. === TetGen === SCIRun needs to be built with [TetGen http://tetgen.berlios.de/] library support enabled. The standalone TetGen application is also needed. Build TetGen from source following these [instructions http://tetgen.berlios.de/compile.html]. == Build Vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. === Cmake === Use Cmake 2.6. <pre> mkdir vpbin<br> cd vpbin<br> ccmake -i ../vispack<br> </pre> CMake variables: <pre> CMAKE_BUILD_TYPE = Release TEEM_DIR = <path to TEEM installation> </pre> If necessary, create symbolic link from liblapack1.so to liblapack.so. Make in vpbin. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. === Preprocessing only (no particle system) === * skip to cmake step. * make -k (ignore compilation errors) === Particle system enabled === * cmake step * make === Cmake === <pre> ccmake -i . </pre> Set CMake variables: <pre> CMAKE_CXX_FLAGS = -I<path to GLUT include dir> -I<path to GLUI include dir> -I<path to glew include dir> CMAKE_EXE_LINKER_FLAGS = -L/usr/X11/lib, add GL, GLUT, GLUI and Cg libraries CMAKE_BUILD_TYPE = Release GLEW_INCLUDE = <path to your glew include dir>/glew/include GLEW_LIBRARY = <full path to your glew library> GLUT_INCLUDE:... GLUT_LIBRARY:... OPENGL_INCLUDE_DIR: OPENGL_gl_LIBRARY: OPENGL_glu_LIBRARY: TEEM_DIR needs to point to your TEEM install path/lib/(teem library) VISPACK_DIR: <path to your checkout> /vispack (vispack build dir) VISPACK_LIBS: <path to your binary dir> /vpbin/lib (path to vispack lib dir) </pre> ==== OS X ==== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: <pre> CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: \ /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib \ -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI </pre> == Build SCIRun == Checkout SCIRun sources from [https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun Subversion]. We are currently using SCIRun revision 41519 for this project; other revisions may not work. The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. Download the SCIRun [http://software.sci.utah.edu/releases/patches/patch_SCIRun_41519.txt patch], save the SCIRun/src directory and apply patch. <code> patch -p0 < patch_SCIRun_41519 </code> * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) * set TETGEN_DIR = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering each others output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5228 5227 2008-10-20T19:50:08Z Ayla 57 /* TetGen */ wikitext text/x-wiki = Building the Code = At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == ''There may be additional software required, I currently cannot remember. Please add them to the above list if you encounter them.'' === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLEW === Miriah's code uses [http://glew.sourceforge.net available GLEW] to render visualization images for the particle system. Binaries are for most platforms: follow the installation [http://glew.sourceforge.net/install.html instructions]. Build from source on OS X 10.5 (Leopard) ==== OS X 10.5 ==== Download source tarball and unpack. Download glew.h [http://software.sci.utah.edu/releases/patches/patch_glew_h.txt patch], save in glew directory and apply patch. <code> patch -p0 < patch_glew_h.txt </code> Download Makefile.darwin [http://software.sci.utah.edu/releases/patches/patch_Makefile_darwin.txt patch], save in glew directory and apply patch. <code> patch -p0 < patch_Makefile_darwin.txt </code> === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI] to render visualization images for the particle system. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Miriah's code uses [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] to render visualization images for the particle system. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. === TetGen === SCIRun needs to be built with [http://tetgen.berlios.de/ TetGen] library support enabled. The standalone TetGen application is also needed. Build TetGen from source following these [http://tetgen.berlios.de/compile.html instructions]. == Build Vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. === Cmake === Use Cmake 2.6. <pre> mkdir vpbin<br> cd vpbin<br> ccmake -i ../vispack<br> </pre> CMake variables: <pre> CMAKE_BUILD_TYPE = Release TEEM_DIR = <path to TEEM installation> </pre> If necessary, create symbolic link from liblapack1.so to liblapack.so. Make in vpbin. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. === Preprocessing only (no particle system) === * skip to cmake step. * make -k (ignore compilation errors) === Particle system enabled === * cmake step * make === Cmake === <pre> ccmake -i . </pre> Set CMake variables: <pre> CMAKE_CXX_FLAGS = -I<path to GLUT include dir> -I<path to GLUI include dir> -I<path to glew include dir> CMAKE_EXE_LINKER_FLAGS = -L/usr/X11/lib, add GL, GLUT, GLUI and Cg libraries CMAKE_BUILD_TYPE = Release GLEW_INCLUDE = <path to your glew include dir>/glew/include GLEW_LIBRARY = <full path to your glew library> GLUT_INCLUDE:... GLUT_LIBRARY:... OPENGL_INCLUDE_DIR: OPENGL_gl_LIBRARY: OPENGL_glu_LIBRARY: TEEM_DIR needs to point to your TEEM install path/lib/(teem library) VISPACK_DIR: <path to your checkout> /vispack (vispack build dir) VISPACK_LIBS: <path to your binary dir> /vpbin/lib (path to vispack lib dir) </pre> ==== OS X ==== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: <pre> CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: \ /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib \ -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI </pre> == Build SCIRun == Checkout SCIRun sources from [https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun Subversion]. We are currently using SCIRun revision 41519 for this project; other revisions may not work. The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. Download the SCIRun [http://software.sci.utah.edu/releases/patches/patch_SCIRun_41519.txt patch], save the SCIRun/src directory and apply patch. <code> patch -p0 < patch_SCIRun_41519 </code> * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) * set TETGEN_DIR = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering each others output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == 5229 5228 2008-10-29T00:05:07Z Ayla 57 /* Thirdparty tools */ wikitext text/x-wiki = Building the Code = At this point just enough support was added to the vispack and miriah repositories to make them usable. These are not meant to be easy to use by end users, that is the target of the Power App that we eventually will end up with. For now this is the usable pipeline for creating meshes with an engineer running the code. We will migrate this into a researcher usable PowerApp. == Thirdparty tools == ''There may be additional software required. We are working on identifying and documenting dependencies.'' === Teem === Download Teem 1.9.0 from [http://sourceforge.net/projects/teem SourceForge]. * You must configure TEEM using cmake. * You must set an install path. * make; * make install; === Lapack === Vispack depends on [http://www.netlib.org/lapack Lapack]. ==== OS X ==== The vecLib framework includes Lapack (linker option -framework veclib). === GLEW === Miriah's code uses [http://glew.sourceforge.net available GLEW] to render visualization images for the particle system. Binaries are for most platforms: follow the installation [http://glew.sourceforge.net/install.html instructions]. Build from source on OS X 10.5 (Leopard) ==== OS X 10.5 ==== Download source tarball and unpack. Download glew.h [http://software.sci.utah.edu/releases/patches/patch_glew_h.txt patch], save in glew directory and apply patch. <code> patch -p0 < patch_glew_h.txt </code> Download Makefile.darwin [http://software.sci.utah.edu/releases/patches/patch_Makefile_darwin.txt patch], save in glew directory and apply patch. <code> patch -p0 < patch_Makefile_darwin.txt </code> === GLUI === Miriah's code uses [http://sourceforge.net/projects/glui/ GLUI] to render visualization images for the particle system. First try a precompiled option for your system. ==== OS X ==== Download the [http://lukecyca.com/2007/02/14/glui-23-framework-for-mac-os-x/ framework]. === Cg === Miriah's code uses [http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg shader lib] to render visualization images for the particle system. First try synaptic or Yast or whatever precompiled options your system has. Ubuntu has this ready to go. === TetGen === SCIRun needs to be built with [http://tetgen.berlios.de/ TetGen] library support enabled. The standalone TetGen application is also needed. Build TetGen from source following these [http://tetgen.berlios.de/compile.html instructions]. == Build Vispack == We are building Vispack from [https://code.sci.utah.edu/svn/vispack Subversion]. Vispack build [http://www.cs.utah.edu/~whitaker/vispack instructions]. === Cmake === Use Cmake 2.6. <pre> mkdir vpbin<br> cd vpbin<br> ccmake -i ../vispack<br> </pre> CMake variables: <pre> CMAKE_BUILD_TYPE = Release TEEM_DIR = <path to TEEM installation> </pre> If necessary, create symbolic link from liblapack1.so to liblapack.so. Make in vpbin. == Build miriah == We are building Miriah's code from [https://code.sci.utah.edu/svn/people/miriah Subversion]. === Preprocessing only (no particle system) === * skip to cmake step. * make -k (ignore compilation errors) === Particle system enabled === * cmake step * make === Cmake === <pre> ccmake -i . </pre> Set CMake variables: <pre> CMAKE_CXX_FLAGS = -I<path to GLUT include dir> -I<path to GLUI include dir> -I<path to glew include dir> CMAKE_EXE_LINKER_FLAGS = -L/usr/X11/lib, add GL, GLUT, GLUI and Cg libraries CMAKE_BUILD_TYPE = Release GLEW_INCLUDE = <path to your glew include dir>/glew/include GLEW_LIBRARY = <full path to your glew library> GLUT_INCLUDE:... GLUT_LIBRARY:... OPENGL_INCLUDE_DIR: OPENGL_gl_LIBRARY: OPENGL_glu_LIBRARY: TEEM_DIR needs to point to your TEEM install path/lib/(teem library) VISPACK_DIR: <path to your checkout> /vispack (vispack build dir) VISPACK_LIBS: <path to your binary dir> /vpbin/lib (path to vispack lib dir) </pre> ==== OS X ==== For OS X 10.5, the CMAKE_EXE_LINKER_FLAGS should look like: <pre> CMAKE_EXE_LINKER_FLAGS: -dylib_file /System/Library/Frameworks/OpenGL.framework/Version/A/Libraries/libGL.so: \ /System/Library/frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib \ -L/usr/X11/lib -framework GLUT -framework Cg -framework GLUI </pre> == Build SCIRun == Checkout SCIRun sources from [https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun Subversion]. We are currently using SCIRun revision 41519 for this project; other revisions may not work. The preprocessing scripts use algorithms in SCIRun via the SCIRun Python interface. Use the normal SCIRun build instructions, with the following exceptions. Download the SCIRun [http://software.sci.utah.edu/releases/patches/patch_SCIRun_41519.txt patch], save the SCIRun/src directory and apply patch. <code> patch -p0 < patch_SCIRun_41519 </code> * turn on BUILD_SR_PY during configuration. * set CMAKE_BUILD_TYPE to Release (unless you are debugging) * set TETGEN_DIR = Using the Code = == Scripts == Located in : /SCIRun/src/StandAlone/Apps/FEMesher/scripts == example_bm3d_settings.py == Most if not all of the following scripts expect a bm3d_settings.py file to exist in the directory you run from. It contains per model settings, like label names, scaling factors, etc.. ''the indices that map to material you wish to map. a -1 can be used to indicate combining every index not in the list.'' '''mats = (0, 4, 5, 7, 8)''' ''the material names that map to the indices above. These become filenames later.'' '''mat_names = ('air', 'grey', 'fluid', 'lesion', 'white')''' ''the tighten radius.'' '''mat_radii = 0.8''' ''the outermost material (usually air) needs to set the values of padded pixels to be 1.0 not 0.0 like all the other materials.'' '''inv_pad_idx = 0''' ''set scale factors such that during the resample step we end up with isotropic data'' '''resamp_scale = (1.0, 1.0, 1.0)''' The rest of the settings file is just setting paths to your various code installations appropriately. == gen_particle_sys_inputs.py == This is the main script for preprocessing from a segmentation. Once you have a segmentation, and a bm3d_settings.py generated in a working directory, you can run this script. It will use as many cpu's or threads as specified in the settings file. cd <''your working dir (contains bm3d_settings.py)''>; python gen_particle_sys_inputs.py <''path to your segmentation''>.nrrd; == convert_crossings.py == This simply converts the *_crossing.vol to .nrrds. This must be done before running gen_seeds.py == create_junction_dirs.py == Helper script to generate dir for targeting the particle system. I pass a 4 to this typically since I run up to 4 particle system jobs at a time. These need to start in different dirs, because the code currently writes out particle points in the dir with a standard name. Separate dirs keeps the different jobs from clobbering each others output. This script also links the correct .vol file to a name expected by the particle system, as well as writing 2 of the 3 files you need in the dir to run the particle system. == gen_seeds.py == Make a new directory in your working dir, named seeds. Then run this script to get the set of possible junctions, and the seed points for them. The directory will contain a seed file for every junction that possibly exists. Possible quad junctions start with a q, t for triples and d for double junctions. == pts2tets.py == After finishing with the particle system for all the junctions, feed directory with the output .pts files to this script to generate all the individual surfaces as well as the combined surface that gets fed to TetGen. == Preprocessing Segmentation == This step can be done on bigger machines like hex with and apply the additional cpu's to speed up the preprocessing. == Running the Particle System == == Building the TetVol == == Mapping Indices back to 1 index per material == Main Page 0 1 5230 5190 2008-11-18T21:19:00Z Erikj 2 /* Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008] [[Exec:Guest_List Guest List]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5231 5230 2008-11-18T21:19:13Z Erikj 2 /* Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008] [[Exec:Guest_List Guest List]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5233 5231 2008-11-18T21:21:04Z Erikj 2 /* 2008 Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008] [[Exec:Guest_List | Guest List]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5234 5233 2008-11-18T21:21:36Z Erikj 2 /* 2008 Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008] [[Exec:Reg_Guests | Registered Guests]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5236 5234 2008-11-18T21:25:46Z Erikj 2 /* Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5237 5236 2008-11-18T21:25:58Z Erikj 2 /* Workshops */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5242 5237 2008-12-26T17:27:29Z Jens 63 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===ImageVis3D=== [[CIBC:Project:ImageVis3D | ImageVis3D Design and Development]] ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5245 5242 2008-12-26T17:29:10Z Jens 63 /* Projects */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===ImageVis3D=== [[CIBC:Project:ImageVis3D | ImageVis3D]] : Overview of where we are with ImageVis 1.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5246 5245 2008-12-26T17:29:37Z Jens 63 /* ImageVis3D */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===ImageVis3D=== [[CIBC:Project:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5247 5246 2008-12-26T17:30:00Z Jens 63 /* ImageVis3D */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] Exec:Guest List Guest List 100 2609 5232 2008-11-18T21:19:48Z Erikj 2 New page: == Registered Guests == wikitext text/x-wiki == Registered Guests == CIBC:Exec:Workshop08 0 2611 5238 2008-11-18T21:26:14Z Erikj 2 New page: == Registered Guests == wikitext text/x-wiki == Registered Guests == 5239 5238 2008-11-18T21:35:16Z Deb 56 /* Registered Guests */ wikitext text/x-wiki == Registered Guests == Charles Keller kellerc2@uthscsa.edu Talk:Main Page 1 996 5240 3134 2008-12-18T18:17:50Z Erikj 2 Removing all content from page wikitext text/x-wiki CIBC:ImageVis3D:Plan 0 2586 5243 5155 2008-12-26T17:28:25Z Jens 63 [[CIBC:Project:ImageVis3D]] moved to [[CIBC:ImageVis3D]] wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader ===Functional blocks=== The design plan for this application consists of the following blocks, each assigned to one ore more members of the team: # I/O: Jens #* based on third party libraries but likely '''not''' ITK #* internal format will be NRRD and we may write NRRD versions of the file to disk in the case of large data sets # GUI: Design: all, Implementation: David #* GUI must be separated from process control and not actually necessary for the program to run and execute # Image Processing: Allen #* very basic functionality with some simple filters, cropping, subsampling, etc. # Visualization interface: Jens and Allen #* interface to the multidimensional transfer function # Rendering #* use SLIVR # Memory management: Jens #* support multiple data types #* seek high efficiency for large data sets # Master process controller: Allen #* coordinator and overall manager of the application As much as possible, each block will be separated from all others with well defined interfaces. The master process controller has the task of integrating all the pieces and really defines the complete application. [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-03 | April 3, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-15 | April 15, 2008]] == Implementation Plans== == Results == 5248 5243 2008-12-26T17:30:46Z Jens 63 [[CIBC:ImageVis3D]] moved to [[CIBC:ImageVis3D:Plan]] wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader ===Functional blocks=== The design plan for this application consists of the following blocks, each assigned to one ore more members of the team: # I/O: Jens #* based on third party libraries but likely '''not''' ITK #* internal format will be NRRD and we may write NRRD versions of the file to disk in the case of large data sets # GUI: Design: all, Implementation: David #* GUI must be separated from process control and not actually necessary for the program to run and execute # Image Processing: Allen #* very basic functionality with some simple filters, cropping, subsampling, etc. # Visualization interface: Jens and Allen #* interface to the multidimensional transfer function # Rendering #* use SLIVR # Memory management: Jens #* support multiple data types #* seek high efficiency for large data sets # Master process controller: Allen #* coordinator and overall manager of the application As much as possible, each block will be separated from all others with well defined interfaces. The master process controller has the task of integrating all the pieces and really defines the complete application. [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-03 | April 3, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-15 | April 15, 2008]] == Implementation Plans== == Results == CIBC:Project:ImageVis3D 0 2613 5244 2008-12-26T17:28:25Z Jens 63 [[CIBC:Project:ImageVis3D]] moved to [[CIBC:ImageVis3D]] wikitext text/x-wiki #REDIRECT [[CIBC:ImageVis3D]] CIBC:ImageVis3D 0 2614 5249 2008-12-26T17:30:46Z Jens 63 [[CIBC:ImageVis3D]] moved to [[CIBC:ImageVis3D:Plan]] wikitext text/x-wiki #REDIRECT [[CIBC:ImageVis3D:Plan]] 5250 5249 2008-12-26T17:31:05Z Jens 63 Redirecting to [[CIBC:ImageVis3D:Plan]] wikitext text/x-wiki #REDIRECT [[CIBC:ImageVis3D:Plan]] test 5251 5250 2008-12-26T17:31:19Z Jens 63 wikitext text/x-wiki '''test''' #REDIRECT [[CIBC:ImageVis3D:Plan]] 5252 5251 2008-12-26T17:34:06Z Jens 63 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]} == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. 5253 5252 2008-12-26T17:34:42Z Jens 63 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. 5254 5253 2008-12-26T19:19:14Z Jens 63 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which can be downloaded for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * <span style="font-weight:bold; color:red">0.03 beta</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter, JPEG DICOM suuport ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, bugfixes, MIP, high quality MIP rotations * 0.04 beta (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5255 5254 2008-12-26T19:20:00Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which can be downloaded for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * <span style="font-weight:bold; color:red">0.03 beta</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter, JPEG DICOM suuport ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * 0.04 beta (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5256 5255 2008-12-26T19:20:24Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which can be downloaded for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * <span style="font-weight:bold; color:red">0.03 beta</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter, JPEG DICOM support ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * 0.04 beta (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5257 5256 2008-12-26T19:21:32Z Jens 63 /* Compile it yourself */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which can be downloaded for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * <span style="font-weight:bold; color:red">0.03 beta</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter, JPEG DICOM support ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * 0.04 beta (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5258 5257 2008-12-26T19:22:49Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * <span style="font-weight:bold; color:red">0.03 beta</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter, JPEG DICOM support ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * 0.04 beta (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5259 5258 2008-12-26T19:23:39Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster ---- * <span style="font-weight:bold; color:red">0.03 beta</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter, JPEG DICOM support ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * 0.04 beta (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5260 5259 2008-12-26T19:30:57Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster ---- * <span style="font-weight:bold; color:red">0.03 beta CODENAME: Santa</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter, JPEG DICOM support ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * 0.04 beta CODENAME: Firework (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5261 5260 2008-12-26T19:31:25Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster ---- * <span style="font-weight:bold; color:red">0.03 beta CODENAME: Santa</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter, JPEG DICOM support ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * 0.04 beta CODENAME: Firework (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5262 5261 2008-12-26T19:32:30Z Jens 63 /* Development Information */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster ---- * <span style="font-weight:bold; color:red">0.03 beta CODENAME: Santa</span> (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * 0.04 beta CODENAME: Firework (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) CIBC:ImageVis3D 0 2614 5263 5262 2008-12-26T19:34:23Z Jens 63 /* Development Information */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn https://code.sci.utah.edu/svn/ImageVis3D</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5264 5263 2008-12-26T20:01:32Z Jens 63 /* Compile it yourself */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static QT build yet you can still download ImageVis3D from the SVN repository and look into the scripts subdirectory for scripts to compile QT with the required options. If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you QT installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5265 5264 2008-12-27T21:52:41Z Tfogal 62 /* Compile it yourself */ link to scripts instead of mentioning them. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5266 5265 2008-12-29T22:14:53Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5267 5266 2008-12-29T23:38:31Z Tfogal 62 /* Compile it yourself */ link to Qt/Linux build script. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5268 5267 2008-12-30T00:37:10Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement <span style="font-weight:bold; color:green">seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5269 5268 2008-12-30T00:37:33Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5270 5269 2008-12-30T23:59:43Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5271 5270 2008-12-31T00:03:46Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5272 5271 2008-12-31T00:05:55Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this tool [http://software.sci.utah.edu/devbuilds/imagevis3d/ here]. === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5273 5272 2008-12-31T00:06:11Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this tool [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5274 5273 2008-12-31T17:16:06Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Using ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this tool [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5275 5274 2008-12-31T17:18:39Z Jens 63 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this tool [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5276 5275 2008-12-31T17:19:52Z Jens 63 /* Compile it yourself */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this tool [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5277 5276 2008-12-31T17:20:44Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5278 5277 2008-12-31T18:19:27Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and <span style="font-weight:bold; color:green">completion of UI elements</span> ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5279 5278 2008-12-31T18:39:19Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and <span style="font-weight:bold; color:green">completion of UI elements</span> ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5280 5279 2008-12-31T19:22:21Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * <span style="font-weight:bold; color:red">0.04 beta CODENAME: Fireworks</span> (MIP and code hardening release) ''January 2009'' ** UI *** code frozen, no new features, only bugfixes and <span style="font-weight:bold; color:green">completion of UI elements</span> ** IO *** <span style="font-weight:bold; color:green">implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt</span>, otherwise code frozen, no new features ** Tuvok *** <span style="font-weight:bold; color:green">code cleanup</span>, high quality MIP rotations ---- * 0.05 beta (scripting and code hardening release) ''January 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2008'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2008'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2008'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2008'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5281 5280 2009-01-01T20:30:10Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * 0.04 beta CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Fireworks</span> (scripting and code hardening release) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5282 5281 2009-01-01T20:32:03Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes ---- * 0.04 beta CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: BIBLICAL MAGI</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing, clip planes ** Other *** record video tutorials * 0.06 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) 5283 5282 2009-01-01T20:36:53Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 & 0.06 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * 0.04 beta CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5284 5283 2009-01-01T20:37:13Z Jens 63 /* Video Tutorials */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon with release 0.06 === Video Tutorials === coming soon with release 0.05 - 0.07 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * 0.04 beta CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5285 5284 2009-01-01T20:37:27Z Jens 63 /* Manual */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon with release 0.05 - 0.07 == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * 0.04 beta CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5286 5285 2009-01-01T20:37:44Z Jens 63 /* Video Tutorials */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * 0.03 beta CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * 0.04 beta CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5287 5286 2009-01-01T20:38:44Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5288 5287 2009-01-01T20:40:12Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** integrate manual and videio turial links * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5289 5288 2009-01-01T20:47:10Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5290 5289 2009-01-03T07:16:17Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d&ver=0.04b here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, slice capturing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5292 5290 2009-01-05T23:59:07Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d&ver=0.04b here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** <span style="font-weight:bold; color:green">bugfixes</span> ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5293 5292 2009-01-06T00:00:01Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d&ver=0.04b here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations ---- * <span style="font-weight:bold; color:red">0.05 beta CODENAME: Biblical Magi</span> (scripting and tutorials) ''January 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, <span style="font-weight:bold; color:green">stereo MIP rotations, perspective MIP rotations</span> ** Other *** record video tutorials ---- * 0.06 beta (clip planes) ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5294 5293 2009-01-06T21:50:22Z Jens 63 /* Roadmap */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d&ver=0.04b here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations * 0.05 beta CODENAME: Biblical Magi (scripting and tutorials) ''January 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, stereo MIP rotations, perspective MIP rotations ** Other *** record video tutorials ---- * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ---- * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5295 5294 2009-01-07T00:13:21Z Tfogal 62 /* Download the binary */ don't hardcode the version in the link. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations * 0.05 beta CODENAME: Biblical Magi (scripting and tutorials) ''January 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, stereo MIP rotations, perspective MIP rotations ** Other *** record video tutorials ---- * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ---- * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5298 5295 2009-01-07T20:52:18Z Jens 63 /* Video Tutorials */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations * 0.05 beta CODENAME: Biblical Magi (scripting and tutorials) ''January 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, stereo MIP rotations, perspective MIP rotations ** Other *** record video tutorials ---- * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ---- * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5305 5298 2009-01-08T02:21:33Z Tfogal 62 link to the mailing list info site wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''iv3d-users'' mailing list, or join in the development on ''iv3d-developer''. More information can be found at, http://software.sci.utah.edu/mailinglists.html == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations * 0.05 beta CODENAME: Biblical Magi (scripting and tutorials) ''January 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, stereo MIP rotations, perspective MIP rotations ** Other *** record video tutorials ---- * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ---- * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5306 5305 2009-01-08T02:22:02Z Tfogal 62 /* Join the Community */ oops, typo. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''iv3d-users'' mailing list, or join in the development on ''iv3d-develop''. More information can be found at, http://software.sci.utah.edu/mailinglists.html == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the '''past''', <span style="font-weight:bold; color:red">present</span>, and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. * '''0.00''' (mockup stage) ''April 2008'' ** Design: *** basics, interfaces, UI ** UI: *** complete UI mockup ** IO *** UVF implementation, simple raw converter * '''0.01 alpha''' (first version with rendering capabilities) ''September 2008'' ** Design *** completed ** UI *** all UI elements are now dock widgets ** IO *** UVF improvements, QVIS DAT converter ** Renderer *** in core, OpenGL slice based volume renderer (SBVR) * '''0.02 beta''' (CIBC workshop beta release) ''October 2008'' ** UI *** minor UI refinements ** IO *** UVF improvements, NRRD converter (only detached headers) ** Renderer *** out of core, OpenGL SBVR & GPU Raycaster * '''0.03 beta''' CODENAME: Santa (complete seperation of volume renderer Tuvok and the main app ImageVis3D) ''December 2008'' ** UI *** minor UI refinements, additional stereo UI ** IO *** UVF improvements, full NRRD converter, full VFF converter, interactive converter ** Renderer (Tuvok) *** anaglyph stereo rendering capabilities, MIP, bugfixes * '''0.04 beta''' CODENAME: Fireworks (MIP and code hardening release) ''December 2008'' ** UI *** code frozen, no new features, only bugfixes and completion of UI elements ** IO *** implement seperate command line conversion tool, JPEG DICOM support for JPEGs supported by Qt, otherwise code frozen, no new features ** Tuvok *** code cleanup, high quality MIP rotations * 0.05 beta CODENAME: Biblical Magi (scripting and tutorials) ''January 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** inital ImageVis3D control via script ** Tuvok *** field testing, stereo MIP rotations, perspective MIP rotations ** Other *** record video tutorials ---- * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ---- * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5308 5306 2009-01-08T02:30:18Z Tfogal 62 /* Roadmap */ removed changelogs, linked to the old pages. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''iv3d-users'' mailing list, or join in the development on ''iv3d-develop''. More information can be found at, http://software.sci.utah.edu/mailinglists.html == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5309 5308 2009-01-08T02:37:51Z Tfogal 62 /* Join the Community */ use links better; I really hate the `goto this page' kind of sites. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5310 5309 2009-01-08T02:39:06Z Tfogal 62 /* Past Release Archive */ commas wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make and to build the command line tool run <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> cd CmdLineConverter qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5311 5310 2009-01-08T17:20:11Z Tfogal 62 /* Compile it yourself */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program we also compiled a comand line application to ImageVis3D's IO subsystems that allows you to convert your data into ImageVis3D's internal UVF format via the command line. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5312 5311 2009-01-08T17:23:16Z Tfogal 62 /* Download the binary */ wording wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer Main Page 0 1 5291 5247 2009-01-05T21:48:32Z Jens 63 /* ImageVis3D */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4.0=== ;[[CIBC:SCIRun4|SCIRun 4.0 Information]] : Overview of where we are with SCIRun 4.0 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] CIBC:ImageVis3D ChangeLog0.05b 0 2615 5296 2009-01-07T00:19:25Z Tfogal 62 fairly generic ChangeLog page. wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.05 beta! Features in this release include: * Stereo MIP rotations * A scripting engine, for automating common rendering tasks. * UI improvements. ImageVis3D 0.05b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d 5297 5296 2009-01-07T00:21:10Z Tfogal 62 just a minor note at the bottom wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.05 beta! Features in this release include: * Stereo MIP rotations * A scripting engine, for automating common rendering tasks. * UI improvements. ImageVis3D 0.05b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5307 5297 2009-01-08T02:28:21Z Tfogal 62 adding features that got listed late... wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.05 beta! Features in this release include: * Stereo MIP rotations * A scripting engine, for automating common rendering tasks. * UI improvements. * New MIP rotation modes: ** Stereo ** Perspective view ImageVis3D 0.05b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D ChangeLog0.04b 0 2616 5299 2009-01-08T02:03:47Z Tfogal 62 moving 0.04 to this changelog wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.04 beta (a.k.a. `Fireworks')! Features in this release include: * High quality MIP rotations * UI code is now frozen (bugfixes only) * A command line (batch) conversion tool * Support for JPEG-based DICOMs which use Qt-supported JPEG variations. ImageVis3D 0.04b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D ChangeLog0.03b 0 2617 5300 2009-01-08T02:07:12Z Tfogal 62 moving 0.03b roadmap to this page wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.03 beta (a.k.a. `Santa')! Features in this release include: * Stereo rendering support * Completed NRRD converter * Completed VFF converter * Improvements to ImageVis3D's `native' file format, UVF. * Basic MIP support * (Developer feature) Complete UI / volume renderer. ImageVis3D 0.03b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D ChangeLog0.02b 0 2618 5301 2009-01-08T02:09:55Z Tfogal 62 moving roadmap to here wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.02 beta! This release coincides with the October CIBC workshop. Features in this release include: * Minor improvements to the UI * Basic NRRD support (detached headers only) * Improvements to ImageVis3D's `native' file format, `UVF'. * Out of core Slice-based and raycasting renderers based on OpenGL. ImageVis3D 0.02b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D ChangeLog0.01a 0 2619 5302 2009-01-08T02:13:07Z Tfogal 62 moving roadmap here wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.01 alpha! Features in this release include: * Overall design of ImageVis3D is complete * UI elements are now dockable * QVIS DAT file format reader * A Slice based volume renderer using OpenGL (in core only) ImageVis3D 0.01a supports Intel Macs 10.4, 10.5, and Windows. No binaries are currently available. Please download a newer version from: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d or use the subversion repository at: https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D ChangeLog0.00 0 2620 5303 2009-01-08T02:16:36Z Tfogal 62 move roadmap here wikitext text/x-wiki * 0.00 (mockup stage) April 2008 o Design: + basics, interfaces, UI o UI: + complete UI mockup o IO + UVF implementation, simple raw converter April, 2008 ImageVis3D 0.00 was a `mockup' release. No renderer was present, and the software was not considered usable. This page is purely for historical purposes. Features in this release: * Design basics complete, such as interfaces and UI. * A mock (disconnected) UI is present * UVF (native file format) implementation raw reader. ImageVis3D 0.00 supports Windows. No binaries are available. Please download a later release from: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d or access the subversion repository directly at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5304 5303 2009-01-08T02:16:47Z Tfogal 62 forgot to delete some stuff wikitext text/x-wiki April, 2008 ImageVis3D 0.00 was a `mockup' release. No renderer was present, and the software was not considered usable. This page is purely for historical purposes. Features in this release: * Design basics complete, such as interfaces and UI. * A mock (disconnected) UI is present * UVF (native file format) implementation raw reader. ImageVis3D 0.00 supports Windows. No binaries are available. Please download a later release from: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d or access the subversion repository directly at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D:Plan 0 2586 5313 5248 2009-01-08T18:19:38Z Macleod 3 /* Meeting notes */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Design == === Goals === * Provide a vehicle especially for visualization techniques developed in SCI to get into the hands of scientists. * Start with the functionality of BioImage placed in a lighter weight and more specific frameworks to allow both easy extension and rapid deployment ** remove constraints of dataflow ** fix broken features, e.g., 2D Xfer function editor, painting in slices ** create more intuitive UI ===Design principles and ideas=== * Separation of UI and backend ** further separate backend into graphics and non-graphics components ** separate classes for created transfer functions and rendering based on the transfer function <!-- --> * Achieving re-use? ** make use of SLIVR ** read files via same codes as Seg3D ** data structures from SCIRun <!-- --> *File reading and I/O engine ** base on ITK but anticipate replacing or wrapping pieces of it ** try and pre-read data to allow user to control and select parameters *** spacing in real coordinates *** data type *** organization of slices ** consider 4D (three in space, one in time) data from the start *** are there formats for this? ** consider large data sets from the start ***must be part of the file reader ===Functional blocks=== The design plan for this application consists of the following blocks, each assigned to one ore more members of the team: # I/O: Jens #* based on third party libraries but likely '''not''' ITK #* internal format will be NRRD and we may write NRRD versions of the file to disk in the case of large data sets # GUI: Design: all, Implementation: David #* GUI must be separated from process control and not actually necessary for the program to run and execute # Image Processing: Allen #* very basic functionality with some simple filters, cropping, subsampling, etc. # Visualization interface: Jens and Allen #* interface to the multidimensional transfer function # Rendering #* use SLIVR # Memory management: Jens #* support multiple data types #* seek high efficiency for large data sets # Master process controller: Allen #* coordinator and overall manager of the application As much as possible, each block will be separated from all others with well defined interfaces. The master process controller has the task of integrating all the pieces and really defines the complete application. [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] === Feature list=== * IO ** broad import capablities ** handle large data files efficiently ** saving out volumes from cropped, filters, resampled volumes ** saving images and movies ** save images at higher than screen resolution ** save and load sessions ** ITK-Snap has nice interface for loading data; use this as example ** also allow subsampling of data as we read <!-- --> * Data manipulation ** filters: median, Gaussian ** resampling of volume data ** crop ** histogram ** support for gain field correction <!-- --> * Visualization ** multi-field vis; with and without locking of controls ** time dependent data ** comparative vis (multiple sets of data) ** adding annotations, landmarks, attach notes ** support for large scale data, ** mask support *** clipping planes *** ellipsoid and other polylines *** wedge cuts into the data (not possible with simple clipping plans) *** import masks to apply over volume rendering *** masking and 3D painting (Jens is about to publish this) *** masking based on isosurface ** stereo projection ** level of detail support ** ridge enhancement and occluding contours ** silhouette lines ** control of surface highlights ** other non-photorealistic rendering techniques ===User Interface === * Multidimensional transfer function ** improve design over current versions from Seg3D or BioImage ** different UI for different number of dimensions in the transfer function ** the paint interface (painting in image space that maps to histogram) is a good starting point ** keep UI well separated from rest of code ** include presets of transfer functions and allow users to create new presets ** using two fields together for 2D transfer function <!-- --> * Other ideas ** create resets that combine a set of useful settings, not just X-fer function ** allow locking of features, perhaps groupwise in scaling ** maintain state for each pane ** support multiple panes, each with different data (like ''map3d'') ** include stack of operations and allow vis at different point ** use layers (like Seg3D) as a metaphor ** include both a master list of controls as well as a way to alter groups or individual panes [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] == Meeting notes == [[CIBC:Project:ImageVis3D:Meetings:2008-02-07 | February 7, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-14 | February 14, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-21 | February 21, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-02-28 | February 28, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-06 | March 6, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-10 | March 10, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-03-26 | March 26, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-03 | April 3, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2008-04-15 | April 15, 2008]] [[CIBC:Project:ImageVis3D:Meetings:2009-01-08 | January 8, 2009]] == Implementation Plans== == Results == CIBC:Project:ImageVis3D:Meetings:2009-01-08 0 2621 5314 2009-01-08T18:20:49Z Macleod 3 New page: ==ImageVis3D Meeting== '''January 8, 2009''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Present: Rob, Dave, Jens, Allen, Tom wikitext text/x-wiki ==ImageVis3D Meeting== '''January 8, 2009''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Present: Rob, Dave, Jens, Allen, Tom 5315 5314 2009-01-08T19:25:37Z Macleod 3 - wikitext text/x-wiki ==ImageVis3D Meeting== '''January 8, 2009''' [[CIBC:Project:ImageVis3D | Link to main ImageVis3D Page]] Present: Rob, Dave, Jens, Allen, Tom 1) New release is out * full static build! 2) Jens did Demo of ImageVis3D to a couple teams yesterday 3) Need to set up clearer links to Bugzilla and bug reporting 4) Working now to extract renderer and make it part of other apps, Visit, SCIRun, VTK 5) Testing is also working, at least basic capabilities, more to follow 6) Todo features for February 1.0 release: * clip planes * directX renderer for Windows * complete scripting CIBC:ImageVis3D ChangeLog0.051b 0 2622 5316 2009-01-09T21:17:12Z Tfogal 62 changelog for 0.051b. wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.051 beta! This is a bugfix release, meant to address last minute issues that came up with 0.05b. Changes include: * Quantization fix which prevented some data from loading. * A couple minor fixes to the scripting interface. ImageVis3D 0.051b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D 0 2614 5317 5312 2009-01-09T21:27:50Z Tfogal 62 /* Past Release Archive */ entry for .051b .. do we really need to keep these here? wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5318 5317 2009-01-09T21:45:44Z Tfogal 62 where to give bug reports wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5320 5318 2009-01-14T18:31:53Z Tfogal 62 /* Past Release Archive */ 52b. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5321 5320 2009-01-14T22:09:44Z Jens 63 /* Current Development Focus */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Challenger (clip planes)</span> ''January 2009'' ** UI *** shortcuts *** Update / Autoupdate feature ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5322 5321 2009-01-14T22:19:18Z Jens 63 /* Current Development Focus */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** Update / Autoupdate feature ** IO *** bugfixes ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** record video tutorials ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5323 5322 2009-01-16T06:44:19Z Jens 63 /* Current Development Focus */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === coming soon (with release 0.07) === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5325 5323 2009-01-18T02:46:27Z Tfogal 62 /* Manual */ manual wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5328 5325 2009-01-26T07:24:42Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. If on a Windows system you see an error message such as this [[Image:Imagevis3d-no-redist-error.png]|thumb|Redist error] you need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5329 5328 2009-01-26T07:25:41Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. If on a Windows system you see an error message such as this [[Image:Imagevis3d-no-redist-error.png]|thumb|Redist error] you need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] [[Image:Example.jpg]|thumb|test] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5330 5329 2009-01-26T07:28:12Z Jens 63 Undo revision 5329 by [[Special:Contributions/Jens|Jens]] ([[User talk:Jens|Talk]]) wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. If on a Windows system you see an error message such as this [[Image:Imagevis3d-no-redist-error.png]|thumb|Redist error] you need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5331 5330 2009-01-26T07:29:05Z Jens 63 Undo revision 5328 by [[Special:Contributions/Jens|Jens]] ([[User talk:Jens|Talk]]) wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist errro message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5332 5331 2009-01-26T07:30:00Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist errro message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5333 5332 2009-01-29T00:07:44Z Jens 63 /* Current Development Focus */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is availiable for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist errro message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> *** <span style="font-weight:bold; color:green">Welcome Screen</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">ftp upload capabilites</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5334 5333 2009-01-29T18:37:42Z Tfogal 62 /* Download the binary */ typos wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">Update / Autoupdate feature</span> *** <span style="font-weight:bold; color:green">Welcome Screen</span> ** IO *** <span style="font-weight:bold; color:green">bugfixes</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">ftp upload capabilites</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5337 5334 2009-01-30T07:45:03Z Tfogal 62 /* Development Information */ link to changelog wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5342 5337 2009-02-02T22:12:33Z Jens 63 /* Video Tutorials */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5343 5342 2009-02-04T01:00:44Z Jens 63 /* Video Tutorials */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5344 5343 2009-02-04T07:59:16Z Jens 63 /* Current Development Focus */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** export dataset ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5345 5344 2009-02-04T08:01:10Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** export dataset ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5346 5345 2009-02-05T07:26:25Z Jens 63 /* Current Development Focus */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">export dataset</span> ** Script Engine *** further ImageVis3D control via script ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5347 5346 2009-02-12T00:25:04Z Jens 63 /* Current Development Focus */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">export dataset</span> ** Script Engine *** <span style="font-weight:bold; color:green">further ImageVis3D control via script</span> ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">generate mesh from isosurface</span> *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5348 5347 2009-02-15T09:19:43Z Jens 63 /* Current Development Focus */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">export dataset</span> ** Script Engine *** <span style="font-weight:bold; color:green">further ImageVis3D control via script</span> ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">generate mesh from isosurface</span> *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> *** <span style="font-weight:bold; color:green">data set merger</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5355 5348 2009-03-04T04:53:31Z Tfogal 62 /* Manual */ add a link to some online docs wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it yourself === Assuming that you already have a static build of QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have a static Qt build yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]] === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">export dataset</span> ** Script Engine *** <span style="font-weight:bold; color:green">further ImageVis3D control via script</span> ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">generate mesh from isosurface</span> *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> *** <span style="font-weight:bold; color:green">data set merger</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer CIBC:ImageVis3D ChangeLog0.052b 0 2623 5319 2009-01-14T18:26:43Z Tfogal 62 bugfix release wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.052 beta! This is a bugfix release, meant to address last minute issues that came up with 0.051b. Changes include: * Fix for a Mac-only capturing bug, which affects writing out image sequences for a movie. ImageVis3D 0.052b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. File:IV3D Manual.pdf 6 2624 5324 2009-01-18T02:43:15Z Tfogal 62 Current WIP manual for ImageVis3D. wikitext text/x-wiki Current WIP manual for ImageVis3D. File:Imagevis3d-no-redist-error.png 6 2625 5326 2009-01-26T07:16:52Z Jens 63 wikitext text/x-wiki 5327 5326 2009-01-26T07:19:08Z Jens 63 uploaded a new version of "[[Image:Imagevis3d-no-redist-error.png]]" wikitext text/x-wiki CIBC:ImageVis3D ChangeLog0.054b 0 2626 5335 2009-01-30T07:40:38Z Tfogal 62 finally releasing 0.054b wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.054 beta! This is primarily a bugfix release, fixing many known issues. Changes in this release include: * ImageVis3D can now update itself when it finds a later release available. * A welcome screen was added for ease of use. * FTP uploads for debug logs, useful for a developer in diagnosing a particular machine's issue. * Various Qt workarounds for Mac UI issues. * Fixed a bug in the detection of the amount of memory on Linux systems. * Optional switch to disable LOD when saving MIP rotations * Add a coordinate cross to aid in orienting the dataset. * Fixed a bug in saving both TIFF and GIF image files. * Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. * Unsupported Mac PPC binaries. ImageVis3D 0.054b supports Intel Macs 10.4 and up, Windows, and Linux. In addition, PPC Macs may run but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5336 5335 2009-01-30T07:43:30Z Tfogal 62 forgot to mention tuvok changes wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.054 beta! This is primarily a bugfix release, fixing many known issues. Changes in this release include: * ImageVis3D can now update itself when it finds a later release available. * A welcome screen was added for ease of use. * FTP uploads for debug logs, useful for a developer in diagnosing a particular machine's issue. * Various Qt workarounds for Mac UI issues. * Fixed a bug in the detection of the amount of memory on Linux systems. * Optional switch to disable LOD when saving MIP rotations * Fixed a bug reading some NRRD files. ImageVis3D should be able to read NRRDs as exported by Seg3D. * Add a coordinate cross to aid in orienting the dataset. * Fixed a bug in saving both TIFF and GIF image files. * Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. * Unsupported Mac PPC binaries. * (Developer only) Dynamically-linked Qt builds now work again. ImageVis3D 0.054b supports Intel Macs 10.4 and up, Windows, and Linux. In addition, PPC Macs may run but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5338 5336 2009-01-30T07:50:45Z Tfogal 62 wording wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.054 beta! This is primarily a bugfix release, fixing many known issues. Changes in this release include: * ImageVis3D can now update itself when it finds a later release is available. * A welcome screen was added for ease of use. * FTP uploads for debug logs, useful for a developer in diagnosing a particular machine's issue. * Various Qt workarounds for Mac UI issues. * Fixed a bug in the detection of the amount of memory on Linux systems. * Optional switch to disable LOD when saving MIP rotations * Fixed a bug reading some NRRD files. ImageVis3D should be able to read NRRDs as exported by Seg3D. * Add a coordinate cross to aid in orienting the dataset. * Fixed a bug in saving both TIFF and GIF image files. * Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. * Unsupported Mac PPC binaries. * (Developer only) Dynamically-linked Qt builds now work again. ImageVis3D 0.054b supports Intel Macs 10.4 and up, Windows, and Linux. In addition, PPC Macs may run but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5339 5338 2009-01-30T07:56:09Z Tfogal 62 wording wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.054 beta! This is primarily a bugfix release, fixing many known issues. Changes in this release include: * ImageVis3D can now update itself when it finds a later release is available. * A welcome screen was added for ease of use. * FTP uploads for debug logs, useful for a developer in diagnosing a particular machine's issue. * Various Qt workarounds for Mac UI issues. * Fixed a bug in the detection of the amount of memory on Linux systems. * Optional switch to disable LOD when saving MIP rotations * Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. * Add a coordinate cross to aid in orienting the dataset. * Fixed a bug in saving both TIFF and GIF image files. * Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. * Unsupported Mac PPC binaries. * (Developer only) Dynamically-linked Qt builds now work again. ImageVis3D 0.054b supports Intel Macs 10.4 and up, Windows, and Linux. In addition, PPC Macs may run but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:Meshing 0 2603 5340 5214 2009-01-30T17:07:46Z Wmartin 61 wikitext text/x-wiki =Meshing = [[CIBC:Meshing compiling| check out/compile/run]] [[CIBC:Meshing Results| collaborator meshing results]] [[CIBC:Meshing completed models| completed mesh projects]] CIBC:Meshing compiling 0 2604 5341 5229 2009-01-30T17:48:05Z Wmartin 61 wikitext text/x-wiki = Getting python = This project requires python. Mac's and many Linux boxes have python preinstalled. If you need to install python on your system, you can obtain it at http://www.python.org/download/ = Checking out the Code = svn co https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun = Building the Code = cd SCIRun ./build.sh --with-meshing-pipeline = Using the Code = From your SCIRun directory, you can run src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py --help will print the usage information. = An example = An example model file has been placed [http://www.sci.utah.edu/~dmw/FEMesher/mickey/ here]. Download the NRRD and model files onto your system. Edit the model_config.py, changing the top 2 lines to point to full path to the NRRD on your system and the full path to a directory where the mesher can place its output. To run the mesher: [path to your SCIRun directory]/src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py [path to your SCIRun directory]/bin/FEMesher/mesher_config.py [path to your model]/model_config.py Note: The build.sh script above makes an effort to set up the mesher_config.py for you. However, you might wish to check that the values in mesher_config.py above are appropriate for your system. 5349 5341 2009-02-18T00:10:30Z Wmartin 61 wikitext text/x-wiki = Getting python = This project requires python. Mac's and many Linux boxes have python preinstalled. If you need to install python on your system, you can obtain it at http://www.python.org/download/ = Checking out the Code = svn co https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun = Building the Code = cd SCIRun ./build.sh --with-meshing-pipeline = Using the Code = From your SCIRun directory, you can run src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py --help will print the usage information. = An example = Example model files has been placed [http://www.sci.utah.edu/~dmw/FEMesher/ here]. Download the NRRD and model files onto your system. Edit the model_config.py, changing the top 2 lines to point to full path to the NRRD on your system and the full path to a directory where the mesher can place its output. To run the mesher: [path to your SCIRun directory]/src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py [path to your SCIRun directory]/bin/FEMesher/mesher_config.py [path to your model]/model_config.py Note: The build.sh script above makes an effort to set up the mesher_config.py for you. However, you might wish to check that the values in mesher_config.py above are appropriate for your system. 5350 5349 2009-02-18T00:11:16Z Wmartin 61 wikitext text/x-wiki = Getting python = This project requires python. Mac's and many Linux boxes have python preinstalled. If you need to install python on your system, you can obtain it at http://www.python.org/download/ = Checking out the Code = svn co https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun = Building the Code = cd SCIRun ./build.sh --with-meshing-pipeline = Using the Code = From your SCIRun directory, you can run src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py --help will print the usage information. = An example = Example model files have been placed [http://www.sci.utah.edu/~dmw/FEMesher/ here]. Download the NRRD and model files onto your system. Edit the model_config.py, changing the top 2 lines to point to full path to the NRRD on your system and the full path to a directory where the mesher can place its output. To run the mesher: [path to your SCIRun directory]/src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py [path to your SCIRun directory]/bin/FEMesher/mesher_config.py [path to your model]/model_config.py Note: The build.sh script above makes an effort to set up the mesher_config.py for you. However, you might wish to check that the values in mesher_config.py above are appropriate for your system. 5351 5350 2009-02-18T00:16:18Z Wmartin 61 wikitext text/x-wiki = Getting python = This project requires python. Mac's and many Linux boxes have python preinstalled. If you need to install python on your system, you can obtain it at http://www.python.org/download/ = Checking out the Code = svn co https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun = Building the Code = cd SCIRun ./build.sh --with-meshing-pipeline = Using the Code = From your SCIRun directory, you can run src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py --help will print the usage information. = An example = Example model files have been placed [http://www.sci.utah.edu/~dmw/FEMesher/ here]. For each model, download the NRRD and model_config files onto your system. Edit the model_config.py, changing the top 2 lines to point to full path to the NRRD on your system and the full path to a directory where the mesher can place its output. To run the mesher: [path to your SCIRun directory]/src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py [path to your SCIRun directory]/bin/FEMesher/mesher_config.py [path to your model]/model_config.py Note: The build.sh script above makes an effort to set up the mesher_config.py for you. However, you might wish to check that the values in mesher_config.py above are appropriate for your system. CIBC:ImageVis3D:Documentation:DebugLogs 0 2627 5352 2009-03-04T04:50:58Z Tfogal 62 started the page wikitext text/x-wiki = Debug Logs = ImageVis3D has a builtin logging system designed to quickly ascertain where an error is occurring. If you are running into an issue with ImageVis3D, one of the most useful pieces of information you can give is a debug log which was generated when you encountered your issue. == Enabling Debug Logs == ImageVis3D's debug logs can be enabled interactively via the GUI, or via command line options. === GUI === To enable particular debug channels, simply select the `Debug Window' menu option from the `Help' menu. === Command Line === There are two relevant options: <TT>log</TT> and <TT>loglevel</TT>. The first allows you to specify a file where the debug log should be dumped. The second details how verbose the log should be. For example: ./ImageVis3D -log ~/iv3d-log.txt -loglevel 2 would run ImageVis3D with the most verbose logging being dumped to a file named ''iv3d-log.txt'' in your home directory. 5356 5352 2009-03-04T05:07:15Z Tfogal 62 /* GUI */ images and detail on what each channel does wikitext text/x-wiki = Debug Logs = ImageVis3D has a builtin logging system designed to quickly ascertain where an error is occurring. If you are running into an issue with ImageVis3D, one of the most useful pieces of information you can give is a debug log which was generated when you encountered your issue. == Enabling Debug Logs == ImageVis3D's debug logs can be enabled interactively via the GUI, or via command line options. === GUI === To enable particular debug channels, simply select the `Debug Window' menu option from the `Help' menu. [[Image:Help-debugwin.png|thumb|How to open ImageVis3D's debug window]] From there, 4 debug channels are available for you to disable or enable: * ''Errors'' - display hard error message, which generally mean ImageVis3D cannot work with the input to some subsystem. These are almost always development errors -- please report them! * ''Warnings'' - anomalous conditions which may or may not be bad; ImageVis3D will generally try to continue after a warning. * ''Messages'' - Verbose output aimed at detailing the path through the code, and what ImageVis3D is doing "under the hood". * ''Other'' - otherwise unclassified debug messages; not used often. [[Image:Debugwin-highlight.png|ImageVis3D debugging GUI]] If you are preparing a log to send to a developer, you should select all 4. Note that ImageVis3D can be noticeably slower with debug logs enabled (particularly ''Messages''). === Command Line === There are two relevant options: <TT>log</TT> and <TT>loglevel</TT>. The first allows you to specify a file where the debug log should be dumped. The second details how verbose the log should be. For example: ./ImageVis3D -log ~/iv3d-log.txt -loglevel 2 would run ImageVis3D with the most verbose logging being dumped to a file named ''iv3d-log.txt'' in your home directory. 5357 5356 2009-03-04T05:11:45Z Tfogal 62 /* Command Line */ Mac OS specifics wikitext text/x-wiki = Debug Logs = ImageVis3D has a builtin logging system designed to quickly ascertain where an error is occurring. If you are running into an issue with ImageVis3D, one of the most useful pieces of information you can give is a debug log which was generated when you encountered your issue. == Enabling Debug Logs == ImageVis3D's debug logs can be enabled interactively via the GUI, or via command line options. === GUI === To enable particular debug channels, simply select the `Debug Window' menu option from the `Help' menu. [[Image:Help-debugwin.png|thumb|How to open ImageVis3D's debug window]] From there, 4 debug channels are available for you to disable or enable: * ''Errors'' - display hard error message, which generally mean ImageVis3D cannot work with the input to some subsystem. These are almost always development errors -- please report them! * ''Warnings'' - anomalous conditions which may or may not be bad; ImageVis3D will generally try to continue after a warning. * ''Messages'' - Verbose output aimed at detailing the path through the code, and what ImageVis3D is doing "under the hood". * ''Other'' - otherwise unclassified debug messages; not used often. [[Image:Debugwin-highlight.png|ImageVis3D debugging GUI]] If you are preparing a log to send to a developer, you should select all 4. Note that ImageVis3D can be noticeably slower with debug logs enabled (particularly ''Messages''). === Command Line === There are two relevant options: <TT>log</TT> and <TT>loglevel</TT>. The first allows you to specify a file where the debug log should be dumped. The second details how verbose the log should be. For example: ./ImageVis3D -log ~/iv3d-log.txt -loglevel 2 would run ImageVis3D with the most verbose logging being dumped to a file named ''iv3d-log.txt'' in your home directory. ==== OS X Caveat ==== The Mac OS X binaries are distributed as application bundles. This means the file which you would generally double-click on to start ImageVis3D is actually a directory named ''ImageVis3D.app''. The binary used to start ImageVis3D is actually hidden away with that directory, but to run with command line options one needs to invoke the binary directly. Run the 'Terminal' application (in ''Applications'' then ''Utilities'') to get an OS X command line. If you saved ImageVis3D to your desktop, then to recreate the command line above you would type: ~/Desktop/ImageVis3D.app/Contents/MacOS/ImageVis3D -log ~/iv3d-log.txt -loglevel 2 5358 5357 2009-03-04T05:13:18Z Tfogal 62 /* OS X Caveat */ typo wikitext text/x-wiki = Debug Logs = ImageVis3D has a builtin logging system designed to quickly ascertain where an error is occurring. If you are running into an issue with ImageVis3D, one of the most useful pieces of information you can give is a debug log which was generated when you encountered your issue. == Enabling Debug Logs == ImageVis3D's debug logs can be enabled interactively via the GUI, or via command line options. === GUI === To enable particular debug channels, simply select the `Debug Window' menu option from the `Help' menu. [[Image:Help-debugwin.png|thumb|How to open ImageVis3D's debug window]] From there, 4 debug channels are available for you to disable or enable: * ''Errors'' - display hard error message, which generally mean ImageVis3D cannot work with the input to some subsystem. These are almost always development errors -- please report them! * ''Warnings'' - anomalous conditions which may or may not be bad; ImageVis3D will generally try to continue after a warning. * ''Messages'' - Verbose output aimed at detailing the path through the code, and what ImageVis3D is doing "under the hood". * ''Other'' - otherwise unclassified debug messages; not used often. [[Image:Debugwin-highlight.png|ImageVis3D debugging GUI]] If you are preparing a log to send to a developer, you should select all 4. Note that ImageVis3D can be noticeably slower with debug logs enabled (particularly ''Messages''). === Command Line === There are two relevant options: <TT>log</TT> and <TT>loglevel</TT>. The first allows you to specify a file where the debug log should be dumped. The second details how verbose the log should be. For example: ./ImageVis3D -log ~/iv3d-log.txt -loglevel 2 would run ImageVis3D with the most verbose logging being dumped to a file named ''iv3d-log.txt'' in your home directory. ==== OS X Caveat ==== The Mac OS X binaries are distributed as application bundles. This means the file which you would generally double-click on to start ImageVis3D is actually a directory named ''ImageVis3D.app''. The binary used to start ImageVis3D is actually hidden away within that directory, but to run with command line options one needs to invoke that binary directly. Run the 'Terminal' application (in ''Applications'' then ''Utilities'') to get an OS X command line. If you saved ImageVis3D to your desktop, then to recreate the command line above you would type: ~/Desktop/ImageVis3D.app/Contents/MacOS/ImageVis3D -log ~/iv3d-log.txt -loglevel 2 5359 5358 2009-03-04T05:24:37Z Tfogal 62 /* Debug Logs */ brief about issue dialog wikitext text/x-wiki = Debug Logs = ImageVis3D has a builtin logging system designed to quickly ascertain where an error is occurring. If you are running into an issue with ImageVis3D, one of the most useful pieces of information you can give is a debug log which was generated when you encountered your issue. Recent versions of ImageVis3D also have a "Report an Issue" feature which allows one to interactively specify information in a much more convenient fashion. However some bugs may cause ImageVis3D to halt entirely, and thus it is impossible to use the interactive reporting dialog. For such cases, usually the best approach is to invoke ImageVis3D from the command line, specifying a log file to hold the debug logs. After reproducing the error, simply send the debug log to the [http://software.sci.utah.edu/mailinglists.html ''iv3d-users'' mailing list] with a brief overview of how you caused the crash. == Enabling Debug Logs == ImageVis3D's debug logs can be enabled interactively via the GUI, or via command line options. === GUI === To enable particular debug channels, simply select the `Debug Window' menu option from the `Help' menu. [[Image:Help-debugwin.png|thumb|How to open ImageVis3D's debug window]] From there, 4 debug channels are available for you to disable or enable: * ''Errors'' - display hard error message, which generally mean ImageVis3D cannot work with the input to some subsystem. These are almost always development errors -- please report them! * ''Warnings'' - anomalous conditions which may or may not be bad; ImageVis3D will generally try to continue after a warning. * ''Messages'' - Verbose output aimed at detailing the path through the code, and what ImageVis3D is doing "under the hood". * ''Other'' - otherwise unclassified debug messages; not used often. [[Image:Debugwin-highlight.png|ImageVis3D debugging GUI]] If you are preparing a log to send to a developer, you should select all 4. Note that ImageVis3D can be noticeably slower with debug logs enabled (particularly ''Messages''). === Command Line === There are two relevant options: <TT>log</TT> and <TT>loglevel</TT>. The first allows you to specify a file where the debug log should be dumped. The second details how verbose the log should be. For example: ./ImageVis3D -log ~/iv3d-log.txt -loglevel 2 would run ImageVis3D with the most verbose logging being dumped to a file named ''iv3d-log.txt'' in your home directory. ==== OS X Caveat ==== The Mac OS X binaries are distributed as application bundles. This means the file which you would generally double-click on to start ImageVis3D is actually a directory named ''ImageVis3D.app''. The binary used to start ImageVis3D is actually hidden away within that directory, but to run with command line options one needs to invoke that binary directly. Run the 'Terminal' application (in ''Applications'' then ''Utilities'') to get an OS X command line. If you saved ImageVis3D to your desktop, then to recreate the command line above you would type: ~/Desktop/ImageVis3D.app/Contents/MacOS/ImageVis3D -log ~/iv3d-log.txt -loglevel 2 5360 5359 2009-03-04T05:27:11Z Tfogal 62 /* GUI */ wording wikitext text/x-wiki = Debug Logs = ImageVis3D has a builtin logging system designed to quickly ascertain where an error is occurring. If you are running into an issue with ImageVis3D, one of the most useful pieces of information you can give is a debug log which was generated when you encountered your issue. Recent versions of ImageVis3D also have a "Report an Issue" feature which allows one to interactively specify information in a much more convenient fashion. However some bugs may cause ImageVis3D to halt entirely, and thus it is impossible to use the interactive reporting dialog. For such cases, usually the best approach is to invoke ImageVis3D from the command line, specifying a log file to hold the debug logs. After reproducing the error, simply send the debug log to the [http://software.sci.utah.edu/mailinglists.html ''iv3d-users'' mailing list] with a brief overview of how you caused the crash. == Enabling Debug Logs == ImageVis3D's debug logs can be enabled interactively via the GUI, or via command line options. === GUI === To enable particular debug channels, simply select the `Debug Window' menu option from the `Help' menu. [[Image:Help-debugwin.png|thumb|How to open ImageVis3D's debug window]] From there, 4 debug channels are available for you to disable or enable: * ''Errors'' - display hard error message, which generally mean ImageVis3D cannot work with the input to some subsystem. These are almost always development errors -- please report them! * ''Warnings'' - anomalous conditions which may or may not be indicative of a problem; ImageVis3D will generally try to continue after a warning. * ''Messages'' - Verbose output aimed at detailing the path through the code, and what ImageVis3D is doing "under the hood". * ''Other'' - otherwise unclassified debug messages; not used often. [[Image:Debugwin-highlight.png|ImageVis3D debugging GUI]] If you are preparing a log to send to a developer, you should select all 4. Note that ImageVis3D can be noticeably slower with debug logs enabled (particularly ''Messages''). === Command Line === There are two relevant options: <TT>log</TT> and <TT>loglevel</TT>. The first allows you to specify a file where the debug log should be dumped. The second details how verbose the log should be. For example: ./ImageVis3D -log ~/iv3d-log.txt -loglevel 2 would run ImageVis3D with the most verbose logging being dumped to a file named ''iv3d-log.txt'' in your home directory. ==== OS X Caveat ==== The Mac OS X binaries are distributed as application bundles. This means the file which you would generally double-click on to start ImageVis3D is actually a directory named ''ImageVis3D.app''. The binary used to start ImageVis3D is actually hidden away within that directory, but to run with command line options one needs to invoke that binary directly. Run the 'Terminal' application (in ''Applications'' then ''Utilities'') to get an OS X command line. If you saved ImageVis3D to your desktop, then to recreate the command line above you would type: ~/Desktop/ImageVis3D.app/Contents/MacOS/ImageVis3D -log ~/iv3d-log.txt -loglevel 2 5361 5360 2009-03-04T05:27:36Z Tfogal 62 /* GUI */ wording wikitext text/x-wiki = Debug Logs = ImageVis3D has a builtin logging system designed to quickly ascertain where an error is occurring. If you are running into an issue with ImageVis3D, one of the most useful pieces of information you can give is a debug log which was generated when you encountered your issue. Recent versions of ImageVis3D also have a "Report an Issue" feature which allows one to interactively specify information in a much more convenient fashion. However some bugs may cause ImageVis3D to halt entirely, and thus it is impossible to use the interactive reporting dialog. For such cases, usually the best approach is to invoke ImageVis3D from the command line, specifying a log file to hold the debug logs. After reproducing the error, simply send the debug log to the [http://software.sci.utah.edu/mailinglists.html ''iv3d-users'' mailing list] with a brief overview of how you caused the crash. == Enabling Debug Logs == ImageVis3D's debug logs can be enabled interactively via the GUI, or via command line options. === GUI === To enable particular debug channels, simply select the `Debug Window' menu option from the `Help' menu. [[Image:Help-debugwin.png|thumb|How to open ImageVis3D's debug window]] From there, 4 debug channels are available for you to disable or enable: * ''Errors'' - display hard error message, which generally mean ImageVis3D cannot work with the input to some subsystem. These are almost always coding errors -- please report them! * ''Warnings'' - anomalous conditions which may or may not be indicative of a problem; ImageVis3D will generally try to continue after a warning. * ''Messages'' - Verbose output aimed at detailing the path through the code, and what ImageVis3D is doing "under the hood". * ''Other'' - otherwise unclassified debug messages; not used often. [[Image:Debugwin-highlight.png|ImageVis3D debugging GUI]] If you are preparing a log to send to a developer, you should select all 4. Note that ImageVis3D can be noticeably slower with debug logs enabled (particularly ''Messages''). === Command Line === There are two relevant options: <TT>log</TT> and <TT>loglevel</TT>. The first allows you to specify a file where the debug log should be dumped. The second details how verbose the log should be. For example: ./ImageVis3D -log ~/iv3d-log.txt -loglevel 2 would run ImageVis3D with the most verbose logging being dumped to a file named ''iv3d-log.txt'' in your home directory. ==== OS X Caveat ==== The Mac OS X binaries are distributed as application bundles. This means the file which you would generally double-click on to start ImageVis3D is actually a directory named ''ImageVis3D.app''. The binary used to start ImageVis3D is actually hidden away within that directory, but to run with command line options one needs to invoke that binary directly. Run the 'Terminal' application (in ''Applications'' then ''Utilities'') to get an OS X command line. If you saved ImageVis3D to your desktop, then to recreate the command line above you would type: ~/Desktop/ImageVis3D.app/Contents/MacOS/ImageVis3D -log ~/iv3d-log.txt -loglevel 2 5362 5361 2009-03-04T05:28:22Z Tfogal 62 /* Command Line */ wording wikitext text/x-wiki = Debug Logs = ImageVis3D has a builtin logging system designed to quickly ascertain where an error is occurring. If you are running into an issue with ImageVis3D, one of the most useful pieces of information you can give is a debug log which was generated when you encountered your issue. Recent versions of ImageVis3D also have a "Report an Issue" feature which allows one to interactively specify information in a much more convenient fashion. However some bugs may cause ImageVis3D to halt entirely, and thus it is impossible to use the interactive reporting dialog. For such cases, usually the best approach is to invoke ImageVis3D from the command line, specifying a log file to hold the debug logs. After reproducing the error, simply send the debug log to the [http://software.sci.utah.edu/mailinglists.html ''iv3d-users'' mailing list] with a brief overview of how you caused the crash. == Enabling Debug Logs == ImageVis3D's debug logs can be enabled interactively via the GUI, or via command line options. === GUI === To enable particular debug channels, simply select the `Debug Window' menu option from the `Help' menu. [[Image:Help-debugwin.png|thumb|How to open ImageVis3D's debug window]] From there, 4 debug channels are available for you to disable or enable: * ''Errors'' - display hard error message, which generally mean ImageVis3D cannot work with the input to some subsystem. These are almost always coding errors -- please report them! * ''Warnings'' - anomalous conditions which may or may not be indicative of a problem; ImageVis3D will generally try to continue after a warning. * ''Messages'' - Verbose output aimed at detailing the path through the code, and what ImageVis3D is doing "under the hood". * ''Other'' - otherwise unclassified debug messages; not used often. [[Image:Debugwin-highlight.png|ImageVis3D debugging GUI]] If you are preparing a log to send to a developer, you should select all 4. Note that ImageVis3D can be noticeably slower with debug logs enabled (particularly ''Messages''). === Command Line === There are two relevant options: <TT>log</TT> and <TT>loglevel</TT>. The first allows you to specify a file where the debug log should be dumped. The second details how verbose the log should be. For example: ./ImageVis3D -log ~/iv3d-log.txt -loglevel 2 would run ImageVis3D in its most verbose logging mode, dumping to a file named ''iv3d-log.txt'' in your home directory. ==== OS X Caveat ==== The Mac OS X binaries are distributed as application bundles. This means the file which you would generally double-click on to start ImageVis3D is actually a directory named ''ImageVis3D.app''. The binary used to start ImageVis3D is actually hidden away within that directory, but to run with command line options one needs to invoke that binary directly. Run the 'Terminal' application (in ''Applications'' then ''Utilities'') to get an OS X command line. If you saved ImageVis3D to your desktop, then to recreate the command line above you would type: ~/Desktop/ImageVis3D.app/Contents/MacOS/ImageVis3D -log ~/iv3d-log.txt -loglevel 2 File:Help-debugwin.png 6 2628 5353 2009-03-04T04:52:35Z Tfogal 62 How to open the debug window. wikitext text/x-wiki How to open the debug window. File:Debugwin-highlight.png 6 2629 5354 2009-03-04T04:53:02Z Tfogal 62 Where the debug channels are in the debug window. wikitext text/x-wiki Where the debug channels are in the debug window. CIBC:ImageVis3D:Documentation:Overview 0 2630 5363 2009-03-04T05:31:06Z Tfogal 62 New page: [[CIBC:ImageVis3D:Documentation:DebugLogs | Debug logs]] wikitext text/x-wiki [[CIBC:ImageVis3D:Documentation:DebugLogs | Debug logs]] CIBC:ImageVis3D 0 2614 5364 5355 2009-03-04T05:32:28Z Tfogal 62 /* Compile it yourself */ update -- doesn't need to be static anymore wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to you Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]] === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">export dataset</span> ** Script Engine *** <span style="font-weight:bold; color:green">further ImageVis3D control via script</span> ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">generate mesh from isosurface</span> *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> *** <span style="font-weight:bold; color:green">data set merger</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5365 5364 2009-03-04T05:32:50Z Tfogal 62 /* Compile it Yourself */ missing `r' wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]] === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''February 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">export dataset</span> ** Script Engine *** <span style="font-weight:bold; color:green">further ImageVis3D control via script</span> ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">generate mesh from isosurface</span> *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> *** <span style="font-weight:bold; color:green">data set merger</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes * 0.20 RC (release candiate 2) ''February 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''February/March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''April 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5366 5365 2009-03-04T05:34:09Z Tfogal 62 /* Roadmap */ updated the schedule wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]] === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''March 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">export dataset</span> ** Script Engine *** <span style="font-weight:bold; color:green">further ImageVis3D control via script</span> ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">generate mesh from isosurface</span> *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> *** <span style="font-weight:bold; color:green">data set merger</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''March 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''March 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''May 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?), multiple dataset fusion renderer 5367 5366 2009-03-04T05:34:36Z Tfogal 62 /* Roadmap */ multi-channel data is in the works wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]] === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.06 beta CODENAME: Groundhog (clip planes)</span> ''March 2009'' ** UI *** shortcuts *** <span style="font-weight:bold; color:green">export dataset</span> ** Script Engine *** <span style="font-weight:bold; color:green">further ImageVis3D control via script</span> ** Tuvok *** field testing, clip planes, slice capturing ** Other *** <span style="font-weight:bold; color:green">generate mesh from isosurface</span> *** <span style="font-weight:bold; color:green">record video tutorials</span> *** <span style="font-weight:bold; color:green">UVFConvert cross convert features</span> *** <span style="font-weight:bold; color:green">data set merger</span> ==== Future Development Plans ==== * 0.07 beta (1.0 feature complete release) ''March 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials * 0.10 RC (release candiate 1) ''March 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''March 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''May 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5377 5367 2009-03-13T02:01:36Z Tfogal 62 /* Development Information */ update for new release wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]] === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.07 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5378 5377 2009-03-13T02:02:04Z Tfogal 62 /* Manual */ missing period wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/MakeStaticQT.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.07 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5379 5378 2009-03-20T19:41:54Z Tfogal 62 fix script path wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.07 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5381 5379 2009-03-24T20:08:52Z Tfogal 62 /* Development Information */ update schedule to match releases wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5382 5381 2009-03-24T20:22:27Z Tfogal 62 sample datasets wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5386 5382 2009-03-28T06:44:13Z Jens 63 added reference to ImageVis3D Mobile / The Visible Human Mobile wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5387 5386 2009-04-16T21:58:10Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 0.07b. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5389 5387 2009-04-17T17:42:24Z Tfogal 62 /* Manual */ fix manual version. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of the ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program should be another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provide the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5390 5389 2009-04-17T17:43:44Z Tfogal 62 /* Motivation and Overview */ wording, tense. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have QT 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5391 5390 2009-04-17T17:44:49Z Tfogal 62 /* Compile it Yourself */ QT->Qt wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === We are currently exploring options to receive bug reports from the community. For now, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5392 5391 2009-04-17T17:47:56Z Tfogal 62 /* Report Issues */ rewritten, we now have a dialog for this wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Desgin Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5393 5392 2009-04-17T19:13:00Z Tfogal 62 /* Development Information */ typo wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon (with releases 0.05 - 0.07) == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5395 5393 2009-04-19T23:56:18Z Tfogal 62 /* Video Tutorials */ don't know when tutorials will be done. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5397 5395 2009-05-12T20:56:31Z Jens 63 /* Sample Datasets */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://code.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5398 5397 2009-05-15T00:43:32Z Tfogal 62 /* Compile it Yourself */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5400 5398 2009-05-21T23:35:50Z Tfogal 62 /* Past Release Archive */ add changelog link for 0.1b. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') ==== Current Development Focus ==== * <span style="font-weight:bold; color:red">0.08 beta (1.0 feature complete release)</span> ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** full ImageVis3D control via script ** Tuvok *** field testing, DirectX Renderer for windows ** Other *** write manual and combine with video tutorials ==== Future Development Plans ==== * 0.10 RC (release candiate 1) ''April 2009'' ** UI *** bugfixes ** IO *** bugfixes ** Script Engine *** bugfixes ** Tuvok *** field testing, bugfixes [further RCs as needed] * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.stack.nl/~dimitri/doxygen/ Doxgen] code documentation [...] * 1.10 (Service Release) ''June 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5401 5400 2009-05-21T23:37:57Z Tfogal 62 /* Roadmap */ update for current devel wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [[media:IV3D_Manual.pdf | current manual]] is a work in progress, but will be complete for release 1.0. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.doxygen.org Doxgen] code documentation ==== Future Development Plans ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5402 5401 2009-05-27T21:08:47Z Tfogal 62 /* Manual */ fix link wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. There is also some [[CIBC:ImageVis3D:Documentation:Overview | Online Documentation]]. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.doxygen.org Doxgen] code documentation ==== Future Development Plans ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5403 5402 2009-05-27T21:09:25Z Tfogal 62 /* Manual */ remove links to crappy docs wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.00 (Version 1.0) ''May 2009'' ** UI *** no known bugs ** IO *** no known bugs ** Script Engine *** no known bugs ** Tuvok *** no known bugs, on supported hardware (which is to be determined) ** Other *** wrap into installer on windows and OS X *** complete [http://www.doxygen.org Doxgen] code documentation ==== Future Development Plans ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full JPEG DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range [further Service Releases as needed]<br> [alpha, beta and RC releases of the 2.0 version] * 2.00 (data modification capabilities, e.g. filtering, cropping) ''December 2009'' ** UI *** add data modification, address user feedback/suggestions ** IO *** read/write IO, fix issues, support more exotic file formats as needed ** Script Engine *** keep up with new features ** Tuvok *** software renderer (?) *** multiple dataset fusion renderer *** Support multi-channel data 5405 5403 2009-05-29T17:23:52Z Tfogal 62 /* Development Information */ updated for 1.0 release. removed 'future development plans', they were lame anyway. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Got to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range 5406 5405 2009-05-29T17:24:38Z Tfogal 62 /* ImageVis3D Mobile / The Visible Human Mobile */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == ImageVis3D Mobile / The Visible Human Mobile == Go to this page for information on ImageVis3D Mobile and The Visible Human Mobile: [http://www.sci.utah.edu/cibc/wiki/index.php/CIBC:ImageVis3D:Mobile] == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range 5409 5406 2009-06-02T04:13:42Z Jens 63 /* ImageVis3D Mobile / The Visible Human Mobile */ removed reference to IMageVis3D Mobile wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range 5410 5409 2009-06-03T22:57:16Z Jens 63 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. On windows you may need to download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range 5411 5410 2009-06-03T22:58:24Z Jens 63 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries be make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range 5412 5411 2009-06-03T22:58:47Z Jens 63 /* Download the binary */ fixed typo wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') ==== Current Development Focus ==== * 1.1 (Service Release) ''July 2009'' ** UI *** fix issues, address user feedback/suggestions ** IO *** fix issues, support more exotic file formats (e.g. full DICOM support) ** Script Engine *** fix issues ** Tuvok *** fix issues, possibly extend supported hardware range CIBC:ImageVis3D ChangeLog0.06b 0 2631 5368 2009-03-13T01:04:26Z Tfogal 62 notes for 0.06 wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows users to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for some new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** Use an include path to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * ''Some'' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volumes can only be read, not written. * Multicomponent data is not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5369 5368 2009-03-13T01:04:54Z Tfogal 62 s/some// wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows users to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** Use an include path to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * ''Some'' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volumes can only be read, not written. * Multicomponent data is not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5370 5369 2009-03-13T01:05:36Z Tfogal 62 wording wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows users to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** An include path is used to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * ''Some'' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volumes can only be read, not written. * Multicomponent data is not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5371 5370 2009-03-13T01:06:05Z Tfogal 62 data are always plural wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows users to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** An include path is used to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * ''Some'' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volumes can only be read, not written. * Multicomponent data are not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5372 5371 2009-03-13T01:06:46Z Tfogal 62 wording wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows one to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** An include path is used to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * ''Some'' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volumes can only be read, not written. * Multicomponent data are not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5373 5372 2009-03-13T01:36:02Z Tfogal 62 emphasize more wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows one to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** An include path is used to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * '''Some''' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volumes can only be read, not written. * Multicomponent data are not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5374 5373 2009-03-13T01:36:29Z Tfogal 62 wording wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows one to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** An include path is used to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * '''Some''' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volume file formats can only be read, not written. * Multicomponent data are not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5375 5374 2009-03-13T01:37:33Z Tfogal 62 emphasize users don't care about these wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows one to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes which are only of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** An include path is used to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * '''Some''' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volume file formats can only be read, not written. * Multicomponent data are not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5376 5375 2009-03-13T01:59:21Z Tfogal 62 dataset merging, forgot initially wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.06 beta! While 0.06b is primarily a feature release, many bugs were fixed in this release. Changes since 0.05b include: * New features: ** UI improvements. ImageVis3D now includes a welcome screen to let users quickly access online help, or load their data with just a single click. A `Report' dialog was added to allow users to quickly report issues to developers. ** A clipping plane was added to allow users to slice into their data. Clipping planes use the same mouse controls as normal volume interaction; hold the `Control' key (`Command' on Macs) to manipulate the clipping plane independent of the volume. ** Dataset merging. ImageVis3D's 'UVFConverter' can be used to merge multiple datasets into one, so that it may render both at once. ** A coordinate cross has been added to prevent users from becoming disoriented, especially when zoomed inside a dataset. Press `c' to enable / disable the cross. ** ImageVis3D can now update itself when it detects a new release. ** MIP rotations include an option to ignore LOD levels, using only the maximum resolution of the dataset. ** Many of ImageVis3D's supported file formats can now be ''written'' as well. This allows one to utilize ImageVis3D as a data conversion utility. ** ImageVis3D can now export an extracted isosurface as mesh. ** Support for new file formats: *** `Stack' format (''.stk'' files), as output by the [http://www.moleculardevices.com/pages/software/metamorph.html Metamorph] software. *** `TIFF Volumes', or a stack of images embedded into a single TIFF file. In particular, this allows reading [http://www.loci.wisc.edu/ome/ome-tiff.html OME-TIFF] formatted volumes. * Bugs fixed in this release: ** Quantization fixes for data which could not previously be loaded. ** Fixed a Mac-only bug in the capturing code, which prevented movie generation. ** Many workarounds UI issues that were present with the Mac build. ** Fixed a bug in the detection of the amount of memory on Linux systems. ** Fixed a bug reading some NRRD files. ImageVis3D should now be able to read NRRDs as exported by Seg3D. ** Fixed a bug in saving both TIFF and GIF image files. * Changes which are only of interest to developers: ** Large improvements to the capability and reliability of ImageVis3D's 'scripting' feature. ** Unsupported Mac PPC builds. ** Dynamically-linked Qt libraries work again. ** Debug messages are now simpler to add. ** An include path is used to obtain GLEW, allowing Tuvok to be more easily embedded in other applications. Known issues with this release: * '''Some''' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The new 'Stack' and single-file TIFF volume file formats can only be read, not written. * Multicomponent data are not supported. ImageVis3D 0.06b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at, http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly `developer builds' site, http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at, https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D ChangeLog0.07b 0 2632 5380 2009-03-24T20:05:58Z Tfogal 62 release notes 0.07b wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.07 beta! While 0.07b is primarily a feature release, many bugs were fixed as well. Please note that the UVF file format has ''changed'' in this release, making previously-converted data unusable! ImageVis3D will work correctly again if one reconverts their data. Changes since 0.06b include: New Features ------------ * Support for RGBA datasets using the isosurface renderer. * Added a reader for the `BOV' ("Brick of Values") files. Bugs fixed in this release -------------------------- * Quantizing 32bit floating point data previously failed. * A bug was fixed which prevented exporting isosurfaces as a mesh file. * Bugfix on 2D transfer function load. Changes which are only of interest to developers ------------------------------------------------ * Added a define to remove most IO dependencies from Tuvok. Known issues with this release ------------------------------ * ''Some'' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The 'Stack' and single-file TIFF volume file formats can only be read, not written. * Only RGBA multicomponent data are supported. ImageVis3D 0.07b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at:: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly 'developer builds' site: http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5388 5380 2009-04-17T16:20:52Z Tfogal 62 english wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.07 beta! While 0.07b is primarily a feature release, many bugs were fixed as well. Please note that the UVF file format has ''changed'' in this release, making previously-converted data unusable! ImageVis3D will work correctly again if one reconverts their data. Changes since 0.06b include: New Features ------------ * Support for RGBA datasets using the isosurface renderer. * Added a reader for `BOV' ("Brick of Values") files. Bugs fixed in this release -------------------------- * Quantizing 32bit floating point data previously failed. * A bug was fixed which prevented exporting isosurfaces as a mesh file. * Bugfix on 2D transfer function load. Changes which are only of interest to developers ------------------------------------------------ * Added a define to remove most IO dependencies from Tuvok. Known issues with this release ------------------------------ * ''Some'' JPEG-based DICOMs can not be loaded by ImageVis3D. * The visible portion of the clip plane can become disconnected from the dataset, causing confusing interaction. * The 'Stack' and single-file TIFF volume file formats can only be read, not written. * Only RGBA multicomponent data are supported. ImageVis3D 0.07b supports Intel Macs 10.4 and up, Windows, and Linux. PPC Macs may run ImageVis3D but are not officially supported. Binaries are available at:: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly 'developer builds' site: http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D:Mobile 0 2633 5383 2009-03-28T06:35:47Z Jens 63 New page: == ImageVis3D Mobile == wikitext text/x-wiki == ImageVis3D Mobile == 5384 5383 2009-03-28T06:36:59Z Jens 63 /* ImageVis3D Mobile */ wikitext text/x-wiki == ImageVis3D Mobile == = The Visible Human Mobile = 5385 5384 2009-03-28T06:42:16Z Jens 63 wikitext text/x-wiki = ImageVis3D Mobile = == The Visible Human Mobile == === Things to know about the user interface === * In the main view tab with three fingers to hide the controls * Tap with two fingers to exit the transfer function editor mode (you can start the transfer function editor with the upper right icon) * Tap on the box in the upper left in transfer function editor mode to toggle through the edit modes (red, green, blue, opacity) === Questions / suggestions === Send mail to jens@sci.utah.edu File:IV3D Manual.pdf 6 2624 5394 5324 2009-04-19T23:50:08Z Tfogal 62 uploaded a new version of "[[Image:IV3D Manual.pdf]]": new version; fixed some wording, formatting, adding a new section or two. Mostly just minor updates, needs to be reworked for the 1.0 release. wikitext text/x-wiki Current WIP manual for ImageVis3D. 5396 5394 2009-04-20T00:14:11Z Tfogal 62 uploaded a new version of "[[Image:IV3D Manual.pdf]]": Key to control clip planes was wrong. wikitext text/x-wiki Current WIP manual for ImageVis3D. CIBC:ImageVis3D ChangeLog0.1b 0 2634 5399 2009-05-21T23:32:40Z Tfogal 62 changelog for rc1. wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 0.1b! ImageVis3D 0.1b is a feature complete release candidate for ImageVis3D 1.0. If there are no major issues uncovered, 0.1b will become ImageVis3D 1.0 on May 29th, 2009. While 0.1b is primarily a feature release, many bugs were fixed as well. Please note that the format of saved 2D transfer functions has *changed* in this release, making all previously-saved 2D transfer functions unusable! One dimensional transfer functions were unaffected. The ImageVis3D team will always provide an upgrade path for incompatible version changes between *stable* releases. Changes since 0.07b include: New Features ------------ * Conversion operations are now considerably more verbose, making it clear that ImageVis3D has not frozen while performing a long conversion operation. * Support for reading stacks of lossless JPEG images was added. * More robust detection of unsupported GPUs; ImageVis3D will now bring up an error in more cases when it determines a particular GPU is not supported. * Crash detection: ImageVis3D knows when it was shutdown uncleanly, and will prompt the user to collect extra (debug) information on the next run. * Added the option to use spherical gradients in the 2D transfer function editor. * The ImageVis3D manual was completely rewritten to cover all that recent ImageVis3D's have to offer. Bugs fixed in this release -------------------------- * Clip plane interactions were made considerably more intuitive. * Datasets which cannot be exported will no longer show up as an option in the 'Export Data' dialog. * Various minor memory leaks were plugged. * Saving sequences of images now works on all platforms. * A long standing bug loading DICOMs with embedded lossless JPEGs was fixed. * Memory detection on Linux systems was made more reliable. * A couple minor issues with the BOV reader were corrected. * Fix for a memory issue on Macs which could cause memory corruption, ultimately leading to a crash. * The clip plane is implicitly locked to the dataset when disabled. This ensures interactions with the plane disabled cannot cause the entire dataset to be clipped when enabling the plane. Changes which are only of interest to developers ------------------------------------------------ * OpenGL resources are now cached using their OpenGL context ID, allowing a single process to reuse the same rendering engine from multiple contexts. * A more general data access scheme was introduced, with support for simpler data models in use by the majority of applications. This allows easier embedding of the rendering engine into other applications. * On Windows, required QTDIR(32|64) build environment variables will now work correctly with or without the trailing slash. Known issues with this release ------------------------------ * The 'Stack' and single-file TIFF volume file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * Support for PPC Macs was dropped due to perceived difficulties with third party library support. ImageVis3D 0.1b supports Intel Macs 10.4 and up, Windows, and Linux. Binaries are available at: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly 'developer builds' site: http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. CIBC:ImageVis3D ChangeLog1.0 0 2635 5404 2009-05-29T17:22:05Z Tfogal 62 1.0 changelog wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.0! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. As the 1.0 release is a special occasion, we have created short movies which 'advertise' the features of ImageVis3D. They are available in multiple formats at our 'documentation' webspace: http://software.sci.utah.edu/SCIdownload.php?item=iv3d_docs ImageVis3D 1.0 is a bugfix release on top of the 1.0rc1 release last week. However, some minor features were deemed appropriate for addition. Changes since 1.0rc1 include: New Features ------------ * Slice indicators in 2x2 view mode: the 3D view will now depict the location of the three slice views. * Deb-format packages are available for the 1.0 release, allowing easier installation on Debian-based systems (including Ubuntu). Bugs fixed in this release -------------------------- * An issue was fixed which caused the 32bit Windows installers not to run on 32bit systems. * A compatibility option was added to workaround driver bugs that the raycaster might expose, particularly on Macs. Note that this option disables clip planes for the ray caster. Changes which are only of interest to developers ------------------------------------------------ * The qmake-based build was made more robust, correctly identifying if the Qt installation is shared or static. This makes ImageVis3D run without adding extraneous library paths when using a shared Qt. Known issues with this release ------------------------------ * The 'Stack' and single-file TIFF volume file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. ImageVis3D 1.0 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly 'developer builds' site: http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5407 5404 2009-05-29T17:28:02Z Tfogal 62 minor addition, qt issue bugfix wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.0! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. As the 1.0 release is a special occasion, we have created short movies which 'advertise' the features of ImageVis3D. They are available in multiple formats at our 'documentation' webspace: http://software.sci.utah.edu/SCIdownload.php?item=iv3d_docs ImageVis3D 1.0 is a bugfix release on top of the 1.0rc1 release last week. However, some minor features were deemed appropriate for addition. Changes since 1.0rc1 include: New Features ------------ * Slice indicators in 2x2 view mode: the 3D view will now depict the location of the three slice views. * Deb-format packages are available for the 1.0 release, allowing easier installation on Debian-based systems (including Ubuntu). Bugs fixed in this release -------------------------- * An issue was fixed which caused the 32bit Windows installers not to run on 32bit systems. * A compatibility option was added to workaround driver bugs that the raycaster might expose, particularly on Macs. Note that this option disables clip planes for the ray caster. * Fixed a rare issue with Qt window initialization, which was sometimes visible on Macs. Changes which are only of interest to developers ------------------------------------------------ * The qmake-based build was made more robust, correctly identifying if the Qt installation is shared or static. This makes ImageVis3D run without adding extraneous library paths when using a shared Qt. Known issues with this release ------------------------------ * The 'Stack' and single-file TIFF volume file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. ImageVis3D 1.0 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly 'developer builds' site: http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5408 5407 2009-05-29T20:04:40Z Jens 63 replaced code with gforge in the svn url wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.0! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. As the 1.0 release is a special occasion, we have created short movies which 'advertise' the features of ImageVis3D. They are available in multiple formats at our 'documentation' webspace: http://software.sci.utah.edu/SCIdownload.php?item=iv3d_docs ImageVis3D 1.0 is a bugfix release on top of the 1.0rc1 release last week. However, some minor features were deemed appropriate for addition. Changes since 1.0rc1 include: New Features ------------ * Slice indicators in 2x2 view mode: the 3D view will now depict the location of the three slice views. * Deb-format packages are available for the 1.0 release, allowing easier installation on Debian-based systems (including Ubuntu). Bugs fixed in this release -------------------------- * An issue was fixed which caused the 32bit Windows installers not to run on 32bit systems. * A compatibility option was added to workaround driver bugs that the raycaster might expose, particularly on Macs. Note that this option disables clip planes for the ray caster. * Fixed a rare issue with Qt window initialization, which was sometimes visible on Macs. Changes which are only of interest to developers ------------------------------------------------ * The qmake-based build was made more robust, correctly identifying if the Qt installation is shared or static. This makes ImageVis3D run without adding extraneous library paths when using a shared Qt. Known issues with this release ------------------------------ * The 'Stack' and single-file TIFF volume file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. ImageVis3D 1.0 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly 'developer builds' site: http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://gforge.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D 0 2614 5413 5412 2009-06-09T20:20:16Z Tfogal 62 /* Development Information */ preparing for 1.1 release wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') ==== Current Development Focus ==== * 1.2 ** Goals to be discussed during the Thursday, June 11th meeting. 5422 5413 2009-07-09T19:26:37Z Jens 63 /* Getting ImageVis3D */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. The current first version comes with a set of preloaded datasets for you to view and test, this version is primarily meant as a test program where we expect you to give us feedback and feature requests. The next version will allow you to transfer your own data directly from the desktop version of ImageVis3D to your mobile device and even from one device to the other. Currently, we support exclusively the new iPhone 3Gs, please download the application via the Apple App Store. More information can be found [[ImageVis3DMobile|here]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') ==== Current Development Focus ==== * 1.2 ** Goals to be discussed during the Thursday, June 11th meeting. 5424 5422 2009-07-10T16:10:42Z Jens 63 /* ImageVis3D Mobile */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. The current first version comes with a set of preloaded datasets for you to view and test, this version is primarily meant as a test program where we expect you to give us feedback and feature requests. The next version will allow you to transfer your own data directly from the desktop version of ImageVis3D to your mobile device and even from one device to the other. Currently, we support all iPod touches and iPhones (including the new iPhone 3Gs), please download the application via the Apple App Store. More information can be found [[ImageVis3DMobile|here]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') ==== Current Development Focus ==== * 1.2 ** Goals to be discussed during the Thursday, June 11th meeting. 5428 5424 2009-07-10T16:15:18Z Jens 63 /* ImageVis3D Mobile */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. The current first version comes with a set of preloaded datasets for you to view and test, this version is primarily meant as a test program where we expect you to give us feedback and feature requests. The next version will allow you to transfer your own data directly from the desktop version of ImageVis3D to your mobile device and even from one device to another. Currently, we support all iPod touches and iPhones (including the new iPhone 3Gs), please download the application via the Apple App Store. More information and a quickstart guide can be found [[ImageVis3DMobile|here]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') ==== Current Development Focus ==== * 1.2 ** Goals to be discussed during the Thursday, June 11th meeting. 5430 5428 2009-07-25T18:56:00Z Jens 63 /* ImageVis3D Mobile */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D mobile allow can transfer your own data directly from the desktop to your mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs), please download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quickstart guide can be found [[ImageVis3DMobile|here]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') ==== Current Development Focus ==== * 1.2 ** Goals to be discussed during the Thursday, June 11th meeting. 5434 5430 2009-07-27T17:45:35Z Tfogal 62 /* ImageVis3D Mobile */ minor fixes. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') ==== Current Development Focus ==== * 1.2 ** Goals to be discussed during the Thursday, June 11th meeting. 5435 5434 2009-07-27T17:46:36Z Tfogal 62 /* Current Development Focus */ update wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. 5436 5435 2009-07-27T17:48:18Z Tfogal 62 adding long term dev ideas. linking to changelog I forgot earlier. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d here] or the latest build [http://software.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1.1]] -- (''June, 2009'') ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5440 5436 2009-08-24T12:54:21Z Jens 63 fixed links to binaries wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1.1]] -- (''June, 2009'') ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5441 5440 2009-08-25T07:34:09Z Jens 63 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. As we are using C++ tr1 functionality you need to download and install the VC2008 feature pack on windows systems. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1.1]] -- (''June, 2009'') ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5442 5441 2009-08-25T08:06:44Z Jens 63 /* Compile it Yourself */ added install instructions for vs sp and vs fp wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feetback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1.1]] -- (''June, 2009'') ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5460 5442 2009-10-19T00:40:02Z Tfogal 62 /* Video Tutorials */ typo wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [https://gforge.sci.utah.edu/gf/project/imagevis3d/docman/?&subdir=23&feedback=Successfully%20added ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feedback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1.1]] -- (''June, 2009'') ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5461 5460 2009-10-19T00:41:07Z Tfogal 62 /* Manual */ fix link to manua wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://software.sci.utah.edu/mailinglists.html iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [http://www.sci.utah.edu/images/docs/imagevis3d.pdf ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feedback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1.1]] -- (''June, 2009'') ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5462 5461 2009-10-30T17:55:09Z Tfogal 62 /* Join the Community */ fix link wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://www.sci.utah.edu/lists/ iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [http://www.sci.utah.edu/images/docs/imagevis3d.pdf ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feedback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Past Release Archive ==== * [[CIBC:ImageVis3D_ChangeLog0.00]] -- mockup (''April, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.01a]] -- rendering (''September, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.02b]] -- workshop (''October, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.03b]] -- "Santa" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.04b]] -- "Fireworks" (''December, 2008'') * [[CIBC:ImageVis3D_ChangeLog0.05b]] -- "Biblical Magi" (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.051b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.052b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.054b]] -- (''January, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.06b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.07b]] -- (''March, 2009'') * [[CIBC:ImageVis3D_ChangeLog0.1b]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.0]] -- (''May, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1]] -- (''June, 2009'') * [[CIBC:ImageVis3D_ChangeLog1.1.1]] -- (''June, 2009'') ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. CIBC:ImageVis3D ChangeLog1.1 0 2636 5414 2009-06-09T20:24:03Z Tfogal 62 changelog for 1.1 wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. While ImageVis3D 1.1 is primarily a feature release, important bugs were fixed. Changes since 1.0 include: New Features ------------ * A converter for Fraunhofer EZRT was contributed by Andre Liebscher. Thanks, Andre! * The 'minimum framerate' setting is now honored; ImageVis3D will now render higher-resolution data if they exist in cache and your system can render the data at the desired framerate. * The 'a' key now changes rotation modes; see the manual for details. * 'pageup' and 'pagedown' now provide fine-grained control over the zoom factor. * One can now zoom in the 2D transfer function editor. Bugs fixed in this release -------------------------- * Full-color datasets with multiple bricks would render incorrectly with the slice-based renderer. * A bug was fixed which caused the crash detection feature not to disable itself once enabled. * Built-in URLs for help/other resources were updated to account for the new SCI website. Changes which are only of interest to developers ------------------------------------------------ * The windows project file now disables many of the warnings in the included third party libraries. * Tuvok's IO has been separated into a separate repository and linked via a subversion external. Known issues with this release ------------------------------ * The 'Stack' single-file TIFF volumes, and BOV file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. ImageVis3D 1.1 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://software.sci.utah.edu/SCIdownload.php?item=imagevis3d the nightly 'developer builds' site: http://software.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://code.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5415 5414 2009-06-09T20:26:04Z Tfogal 62 fix URLs wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. While ImageVis3D 1.1 is primarily a feature release, important bugs were fixed. Changes since 1.0 include: New Features ------------ * A converter for Fraunhofer EZRT was contributed by Andre Liebscher. Thanks, Andre! * The 'minimum framerate' setting is now honored; ImageVis3D will now render higher-resolution data if they exist in cache and your system can render the data at the desired framerate. * The 'a' key now changes rotation modes; see the manual for details. * 'pageup' and 'pagedown' now provide fine-grained control over the zoom factor. * One can now zoom in the 2D transfer function editor. Bugs fixed in this release -------------------------- * Full-color datasets with multiple bricks would render incorrectly with the slice-based renderer. * A bug was fixed which caused the crash detection feature not to disable itself once enabled. * Built-in URLs for help/other resources were updated to account for the new SCI website. Changes which are only of interest to developers ------------------------------------------------ * The windows project file now disables many of the warnings in the included third party libraries. * Tuvok's IO has been separated into a separate repository and linked via a subversion external. Known issues with this release ------------------------------ * The 'Stack' single-file TIFF volumes, and BOV file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. ImageVis3D 1.1 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://gforge.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5416 5415 2009-06-09T20:26:35Z Tfogal 62 wording wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. While ImageVis3D 1.1 is primarily a feature release, important bugs were fixed. Changes since 1.0 include: New Features ------------ * A converter for Fraunhofer EZRT data was contributed by Andre Liebscher. Thanks, Andre! * The 'minimum framerate' setting is now honored; ImageVis3D will now render higher-resolution data if they exist in cache and your system can render the data at the desired framerate. * The 'a' key now changes rotation modes; see the manual for details. * 'pageup' and 'pagedown' now provide fine-grained control over the zoom factor. * One can now zoom in the 2D transfer function editor. Bugs fixed in this release -------------------------- * Full-color datasets with multiple bricks would render incorrectly with the slice-based renderer. * A bug was fixed which caused the crash detection feature not to disable itself once enabled. * Built-in URLs for help/other resources were updated to account for the new SCI website. Changes which are only of interest to developers ------------------------------------------------ * The windows project file now disables many of the warnings in the included third party libraries. * Tuvok's IO has been separated into a separate repository and linked via a subversion external. Known issues with this release ------------------------------ * The 'Stack' single-file TIFF volumes, and BOV file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. ImageVis3D 1.1 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://gforge.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5417 5416 2009-06-09T20:27:44Z Tfogal 62 spell André's name correctly. wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. While ImageVis3D 1.1 is primarily a feature release, important bugs were fixed. Changes since 1.0 include: New Features ------------ * A converter for Fraunhofer EZRT data was contributed by André Liebscher. Thanks, André! * The 'minimum framerate' setting is now honored; ImageVis3D will now render higher-resolution data if they exist in cache and your system can render the data at the desired framerate. * The 'a' key now changes rotation modes; see the manual for details. * 'pageup' and 'pagedown' now provide fine-grained control over the zoom factor. * One can now zoom in the 2D transfer function editor. Bugs fixed in this release -------------------------- * Full-color datasets with multiple bricks would render incorrectly with the slice-based renderer. * A bug was fixed which caused the crash detection feature not to disable itself once enabled. * Built-in URLs for help/other resources were updated to account for the new SCI website. Changes which are only of interest to developers ------------------------------------------------ * The windows project file now disables many of the warnings in the included third party libraries. * Tuvok's IO has been separated into a separate repository and linked via a subversion external. Known issues with this release ------------------------------ * The 'Stack' single-file TIFF volumes, and BOV file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. ImageVis3D 1.1 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://gforge.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5418 5417 2009-06-09T20:40:29Z Tfogal 62 other formats can't be written. wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. While ImageVis3D 1.1 is primarily a feature release, important bugs were fixed. Changes since 1.0 include: New Features ------------ * A converter for Fraunhofer EZRT data was contributed by André Liebscher. Thanks, André! * The 'minimum framerate' setting is now honored; ImageVis3D will now render higher-resolution data if they exist in cache and your system can render the data at the desired framerate. * The 'a' key now changes rotation modes; see the manual for details. * 'pageup' and 'pagedown' now provide fine-grained control over the zoom factor. * One can now zoom in the 2D transfer function editor. Bugs fixed in this release -------------------------- * Full-color datasets with multiple bricks would render incorrectly with the slice-based renderer. * A bug was fixed which caused the crash detection feature not to disable itself once enabled. * Built-in URLs for help/other resources were updated to account for the new SCI website. Changes which are only of interest to developers ------------------------------------------------ * The windows project file now disables many of the warnings in the included third party libraries. * Tuvok's IO has been separated into a separate repository and linked via a subversion external. Known issues with this release ------------------------------ * The 'Stack' ("stk"), single-file TIFF volume, Fraunhofer RZRT ("rek") and Brick-of-values ("BOV") file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. ImageVis3D 1.1 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://gforge.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5419 5418 2009-06-10T00:42:07Z Tfogal 62 typo wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. While ImageVis3D 1.1 is primarily a feature release, important bugs were fixed. Changes since 1.0 include: New Features ------------ * A converter for Fraunhofer EZRT data was contributed by André Liebscher. Thanks, André! * The 'minimum framerate' setting is now honored; ImageVis3D will now render higher-resolution data if they exist in cache and your system can render the data at the desired framerate. * The 'a' key now changes rotation modes; see the manual for details. * 'pageup' and 'pagedown' now provide fine-grained control over the zoom factor. * One can now zoom in the 2D transfer function editor. Bugs fixed in this release -------------------------- * Full-color datasets with multiple bricks would render incorrectly with the slice-based renderer. * A bug was fixed which caused the crash detection feature not to disable itself once enabled. * Built-in URLs for help/other resources were updated to account for the new SCI website. Changes which are only of interest to developers ------------------------------------------------ * The windows project file now disables many of the warnings in the included third party libraries. * Tuvok's IO has been separated into a separate repository and linked via a subversion external. Known issues with this release ------------------------------ * The 'Stack' ("stk"), single-file TIFF volume, Fraunhofer EZRT ("rek") and Brick-of-values ("BOV") file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. ImageVis3D 1.1 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or directly from the subversion repository at: https://gforge.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D ChangeLog1.1.1 0 2637 5420 2009-06-26T23:55:02Z Tfogal 62 New page: The ImageVis3D team is proud to announce the release of ImageVis3D 1.1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is... wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. While ImageVis3D 1.1.1 is primarily a bugfix release, some new features were added. Changes since 1.1 include: New Features ------------ * A new 'basic' mode was added to the 2D transfer function editor. This mode more closely matches the look and feel of editors from earlier SCI tools. Users may click the 'Expert' button to use the earlier editor. * Diffuse lighting was changed to use a two-sided lighting model (the volume is now backlit in addition to front-lit). * Added keyboard shortcuts for most operations in ImageVis3D. * The mouse wheel can now be inverted in the settings dialog. Bugs fixed in this release -------------------------- * Detection of out of memory conditions was enhanced. ImageVis3D will notice when the rendering library is running out of memory, even if it hasn't hit the user-set limit, and adjust memory usage accordingly. * Fixed a bug which prevented the stereo widget from being closed when no dataset was loaded. * Another round of updates for URLs as they find more permanent homes on the new SCI website. * Workaround for a Qt bug that caused events to be delivered while a window was being destroyed. * Scaling issues were fixed in the 2D transfer function editor. Changes which are only of interest to developers ------------------------------------------------ There were no changes of note for this category. Known issues with this release ------------------------------ * The 'Stack' ("stk"), single-file TIFF volume, Fraunhofer EZRT ("rek") and Brick-of-values ("BOV") file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. ImageVis3D 1.1.1 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or you can get the source directly from our subversion repository: https://gforge.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. 5421 5420 2009-06-26T23:57:36Z Tfogal 62 fix formatting. wikitext text/x-wiki The ImageVis3D team is proud to announce the release of ImageVis3D 1.1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. While ImageVis3D 1.1.1 is primarily a bugfix release, some new features were added. Changes since 1.1 include: New Features ------------ * A new 'basic' mode was added to the 2D transfer function editor. This mode more closely matches the look and feel of editors from earlier SCI tools. Users may click the 'Expert' button to use the earlier editor. * Diffuse lighting was changed to use a two-sided lighting model (the volume is now backlit in addition to front-lit). * Added keyboard shortcuts for most operations in ImageVis3D. * The mouse wheel can now be inverted in the settings dialog. Bugs fixed in this release -------------------------- * Detection of out of memory conditions was enhanced. ImageVis3D will notice when the rendering library is running out of memory, even if it hasn't hit the user-set limit, and adjust memory usage accordingly. * Fixed a bug which prevented the stereo widget from being closed when no dataset was loaded. * Another round of updates for URLs as they find more permanent homes on the new SCI website. * Workaround for a Qt bug that caused events to be delivered while a window was being destroyed. * Scaling issues were fixed in the 2D transfer function editor. Changes which are only of interest to developers ------------------------------------------------ There were no changes of note for this category. Known issues with this release ------------------------------ * The 'Stack' ("stk"), single-file TIFF volume, Fraunhofer EZRT ("rek") and Brick-of-values ("BOV") file formats can only be read, not written. * RGBA is the only kind of multicomponent data supported. * For some Linux systems with nvidia GPUs, the raycaster can expose a driver issue which causes system lockups. We recommend sticking with the slice based volume renderer on Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. ImageVis3D 1.1.1 supports Intel Macs 10.4 and up (10.5.7 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or you can get the source directly from our subversion repository: https://gforge.sci.utah.edu/svn/imagevis3d We look forward to your feedback on this release. Best, - The ImageVis3D team. ImageVis3DMobile 0 2638 5423 2009-07-09T19:31:55Z Jens 63 New page: === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. The current first version comes... wikitext text/x-wiki === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. The current first version comes with a set of preloaded datasets for you to view and test, this version is primarily meant as a test program where we expect you to give us feedback and feature requests. The next version will allow you to transfer your own data directly from the desktop version of ImageVis3D to your mobile device and even from one device to the other. Currently, we support exclusively the new iPhone 3Gs, please download the application via the Apple App Store. === Quickstart Instructions === ImageVis3D mobile's main screen displays your volume in the center surrounded by four buttons. To Interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons can be hidden and shown by touching the screen with three fingers. With the top left button the datasets are toggled, the top right button starts the transfer function editor, the button in the lower left corner toggles the bounding box display while the lower left button toggle volumetric lighting computations. In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. 5425 5423 2009-07-10T16:12:59Z Jens 63 wikitext text/x-wiki === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. The current first version comes with a set of preloaded datasets for you to view and test, this version is primarily meant as a test program where we expect you to give us feedback and feature requests. The next version will allow you to transfer your own data directly from the desktop version of ImageVis3D to your mobile device and even from one device to the other. Currently, we support all iPod touches and iPhones (including the new iPhone 3Gs), please download the application via the Apple App Store. === Quickstart Instructions === ImageVis3D mobile's main screen displays your volume in the center surrounded by four buttons. To Interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons can be hidden and shown by touching the screen with three fingers. With the top left button the datasets are toggled, the top right button starts the transfer function editor, the button in the lower left corner toggles the bounding box display while the lower left button toggle volumetric lighting computations on devices that support OpenGL 2.0 (currently only the iPhone 3Gs supports this) on all other devices this button toggles auto-rotation. In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. 5426 5425 2009-07-10T16:13:49Z Jens 63 wikitext text/x-wiki === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. The current first version comes with a set of preloaded datasets for you to view and test, this version is primarily meant as a test program where we expect you to give us feedback and feature requests. Currently, we support all iPod touches and iPhones (including the new iPhone 3Gs), please download the application via the Apple App Store. === Quickstart Instructions === ImageVis3D mobile's main screen displays your volume in the center surrounded by four buttons. To Interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons can be hidden and shown by touching the screen with three fingers. With the top left button the datasets are toggled, the top right button starts the transfer function editor, the button in the lower left corner toggles the bounding box display while the lower left button toggle volumetric lighting computations on devices that support OpenGL 2.0 (currently only the iPhone 3Gs supports this) on all other devices this button toggles auto-rotation. In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. === Upcoming features === The next version will allow you to transfer your own data directly from the desktop version of ImageVis3D to your mobile device and even from one device to the other. 5427 5426 2009-07-10T16:14:12Z Jens 63 /* Upcoming features */ wikitext text/x-wiki === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. The current first version comes with a set of preloaded datasets for you to view and test, this version is primarily meant as a test program where we expect you to give us feedback and feature requests. Currently, we support all iPod touches and iPhones (including the new iPhone 3Gs), please download the application via the Apple App Store. === Quickstart Instructions === ImageVis3D mobile's main screen displays your volume in the center surrounded by four buttons. To Interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons can be hidden and shown by touching the screen with three fingers. With the top left button the datasets are toggled, the top right button starts the transfer function editor, the button in the lower left corner toggles the bounding box display while the lower left button toggle volumetric lighting computations on devices that support OpenGL 2.0 (currently only the iPhone 3Gs supports this) on all other devices this button toggles auto-rotation. In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. === Upcoming features === The next version will allow you to transfer your own data directly from the desktop version of ImageVis3D to your mobile device and even from one device to another. 5431 5427 2009-07-25T19:11:18Z Jens 63 wikitext text/x-wiki == ImageVis3D Mobile == ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D mobile allow can transfer your own data directly from the desktop to your mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs), please download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To Interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons on the bootm from left to right allow view your data, switch the data set and upload new data from your desktop version of Imagevis3D, edit the transfer function, and change settings (note that ligthing is only avaliable on the new iPhone 3GS). ==== Uploading Data ==== To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (2nd icon on the bottom), scroll down to the bottom of the page and select "recieve data", in the next screen enter the IP adress of the desktop machine that runns ImageVis3D and a port you specified in that desktop next select "Start Transfer". On the desktop machine you first need to enable the ImageVis3D mobile features in the Settings under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferinf data for the first time you should doublecheck the network port if you have a firewall installed (for firewall configuration: ImageVis3D uses a single TCP port for the entire communication, the default port is 22). After that you can click start, this will start the data set conversion process first and then run the netwerk server to which your mobile device well tehn connect. Note: on windows you may see get a message from the build in firewall programm whenn you first cklick start aksing you to allow or deny ImageVis3D access to the network, in this dialog allow ImageVis3D access and then CLICK ON START once more to actually start the network server as the firewall has block ImageVis3D's first attempt to launch the server. ==== The Transferfunction Editor ==== In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. == Upcoming features == The next version will allow you to transfer data directly from one deive mobile device to another. 5432 5431 2009-07-27T16:58:22Z Jens 63 /* Uploading Data */ wikitext text/x-wiki == ImageVis3D Mobile == ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D mobile allow can transfer your own data directly from the desktop to your mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs), please download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To Interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons on the bootm from left to right allow view your data, switch the data set and upload new data from your desktop version of Imagevis3D, edit the transfer function, and change settings (note that ligthing is only avaliable on the new iPhone 3GS). ==== Uploading Data ==== To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (2nd icon on the bottom), scroll down to the bottom of the page and select "recieve data", in the next screen enter the IP adress of the desktop machine that runs ImageVis3D and a port you specified in that desktop next select "Start Transfer". On the desktop machine you first need to enable the ImageVis3D mobile features in the Settings under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should doublecheck the network port if you have a firewall installed (for firewall configuration: ImageVis3D uses a single TCP port for the entire communication, the default port is 22). After that you can click start, this will start the data set conversion process first and then run the netwerk server to which your mobile device well tehn connect. Note: on windows you may see get a message from the build in firewall programm when you first click start asking you to allow or deny ImageVis3D access to the network, in this dialog allow ImageVis3D access and then CLICK ON START once more to actually start the network server as the firewall has block ImageVis3D's first attempt to launch the server. ==== The Transferfunction Editor ==== In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. == Upcoming features == The next version will allow you to transfer data directly from one deive mobile device to another. 5433 5432 2009-07-27T17:43:55Z Tfogal 62 formatting, wording wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile allow can transfer your own data directly from a desktop to your mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, you must ''click on start again'' to actually start the network server. == The Transfer Function Editor == In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. == Upcoming features == The next version will allow you to transfer data directly from one mobile device to another. 5438 5433 2009-07-29T21:00:57Z Jens 63 wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile allow can transfer your own data directly from a desktop to your mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, you must ''click on start again'' to actually start the network server. == Date exchange from mobile device to mobile device == ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if booth devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices, in the popup window connect to your peer, and finally select the dataset to be transfered on the source device. == The Transfer Function Editor == In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. == Upcoming features == The next version will allow you to transfer data directly from one mobile device to another. 5439 5438 2009-08-24T12:30:26Z Jens 63 made the change mentioned in the last comment wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile allow can transfer your own data directly from a desktop to your mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, you must ''click on start again'' to actually start the network server. == Date exchange from mobile device to mobile device == ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if booth devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices, in the popup window connect to your peer, and finally select the dataset to be transfered on the source device. == The Transfer Function Editor == In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. 5443 5439 2009-08-27T10:52:37Z Jens 63 /* ImageVis3D Mobile */ wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = <span style="color:#FF0000">Approved Beta testers please click </span>[[ImageVis3DMobileBeta|this link]]<span style="color:#FF0000"> for instructions on how to install the latest version on your device. To apply for the ImageVis3D bet program please</span> [[ImageVis3DMobileBetaApplication|follow this link]]. ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile allow can transfer your own data directly from a desktop to your mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two finders to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, you must ''click on start again'' to actually start the network server. == Date exchange from mobile device to mobile device == ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if booth devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices, in the popup window connect to your peer, and finally select the dataset to be transfered on the source device. == The Transfer Function Editor == In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. 5449 5443 2009-08-27T14:22:21Z Tfogal 62 typos and similar wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = <span style="color:#FF0000">Approved Beta testers please click </span>[[ImageVis3DMobileBeta|this link]]<span style="color:#FF0000"> for instructions on how to install the latest version on your device. To apply for the ImageVis3D beta program please</span> [[ImageVis3DMobileBetaApplication|follow this link]]. ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile one can transfer their own data directly from a desktop to a mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two fingers to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, ''you must click on 'start' again'' to actually start the network server. == Date exchange from mobile device to mobile device == ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if both devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices. In the popup window connect to your peer, and finally select the dataset to be transferred on the source device. == The Transfer Function Editor == In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. CIBC:Meshing compiling 0 2604 5429 5351 2009-07-13T21:53:03Z Ayla 57 /* An example */ wikitext text/x-wiki = Getting python = This project requires python. Mac's and many Linux boxes have python preinstalled. If you need to install python on your system, you can obtain it at http://www.python.org/download/ = Checking out the Code = svn co https://code.sci.utah.edu/svn/SCIRun/cibc/trunk/SCIRun = Building the Code = cd SCIRun ./build.sh --with-meshing-pipeline = Using the Code = From your SCIRun directory, you can run src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py --help will print the usage information. = An example = Example model files have been placed [http://www.sci.utah.edu/devbuilds/biomesh3d/FEMesher here]. For each model, download the NRRD and model_config files onto your system. Edit the model_config.py, changing the top 2 lines to point to full path to the NRRD on your system and the full path to a directory where the mesher can place its output. To run the mesher: [path to your SCIRun directory]/src/StandAlone/Apps/FEMesher/scripts/BuildMesh.py [path to your SCIRun directory]/bin/FEMesher/mesher_config.py [path to your model]/model_config.py Note: The build.sh script above makes an effort to set up the mesher_config.py for you. However, you might wish to check that the values in mesher_config.py above are appropriate for your system. User:Tfogal 2 2639 5437 2009-07-27T17:52:17Z Tfogal 62 who I am wikitext text/x-wiki I'm Tom. I work at SCI && I'm great. I'm one of the lead ImageVis3D developers. I also work on VisIt and occasionally SCIRun. You can contact me via any of the 'iv3d' mailing lists. ImageVis3DMobileBeta 0 2640 5444 2009-08-27T11:02:17Z Jens 63 New page: == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your ID to the ImageVis3D Mobile team and received confirmation that your application has been accepted follow these... wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your ID to the ImageVis3D Mobile team and received confirmation that your application has been accepted follow these steps (note that the app will not work on your device before you received confirmation and we included your ID in the distribution): * Download the mobileprovision and the application zif files from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ here] * Connect the device to your Mac or PC. * Drag the attached mobileprovision file into your medial library in itunes * Extract the attached *zip file and drag the *.app file into your medial library in itunes * Sync your iPhone / iPod touch * Disconnect the device and enjoy ImageVis3D Mobile Please report any bugs, issues, feature requests [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a confirmed beta tested. If you want to apply for the program click [[ImageVis3DMobileBetaApplication|here]]. 5447 5444 2009-08-27T11:22:33Z Jens 63 /* ImageVis3D Mobile Ad-Hoc Distribution Installation */ wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your ID to the ImageVis3D Mobile team and received confirmation that your application has been accepted follow these steps (note that the app will not work on your device before you received confirmation and we included your ID in the distribution): * Download the mobileprovision and the application zip files from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ here] * Connect the device to your Mac or PC. * Drag the attached mobileprovision file into your medial library in itunes * Extract the attached *zip file and drag the *.app file into your medial library in itunes * Sync your iPhone / iPod touch * Disconnect the device and enjoy ImageVis3D Mobile Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a confirmed beta tested. If you want to apply for the program click [[ImageVis3DMobileBetaApplication|here]]. 5448 5447 2009-08-27T11:22:46Z Jens 63 wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your ID to the ImageVis3D Mobile team and received confirmation that your application has been accepted follow these steps (note that the app will not work on your device before you received confirmation and we included your ID in the distribution): * Download the mobileprovision and the application zip files from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ here] * Connect the device to your Mac or PC. * Drag the attached mobileprovision file into your medial library in itunes * Extract the attached *.zip file and drag the *.app file into your medial library in itunes * Sync your iPhone / iPod touch * Disconnect the device and enjoy ImageVis3D Mobile Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a confirmed beta tested. If you want to apply for the program click [[ImageVis3DMobileBetaApplication|here]]. 5451 5448 2009-08-27T14:29:16Z Tfogal 62 /* ImageVis3D Mobile Ad-Hoc Distribution Installation */ wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your device ID to the ImageVis3D Mobile team and have received confirmation that your application has been accepted, follow these steps: * Download the mobile provision and application zip files from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ here] * Connect the device to your Mac or PC. * Drag the attached mobileprovision file into your media library in itunes * Extract the attached *.zip file and drag the *.app file into your media library in itunes * Sync your iPhone / iPod touch * Disconnect the device and enjoy ImageVis3D Mobile '''Note:''' The app will '''not''' work on your device before you received confirmation and we included your ID in the distribution! Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a [[ImageVis3DMobileBetaApplication | confirmed beta tester]]. 5453 5451 2009-08-27T14:55:30Z Jens 63 /* ImageVis3D Mobile Ad-Hoc Distribution Installation */ wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your device ID to the ImageVis3D Mobile team and have received confirmation that your application has been accepted, follow these steps: # Download the mobile provision and application zip files from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ here] # Connect the device to your Mac or PC. # Drag the attached mobileprovision file into your media library in itunes # Extract the attached *.zip file and drag the *.app file into your media library in itunes # Sync your iPhone / iPod touch # Disconnect the device and enjoy ImageVis3D Mobile '''Note:''' The app will '''not''' work on your device before you received confirmation and we included your ID in the distribution! Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a [[ImageVis3DMobileBetaApplication | confirmed beta tester]]. ImageVis3DMobileBetaApplication 0 2641 5445 2009-08-27T11:10:02Z Jens 63 New page: == ImageVis3D Mobile Beta Application == To apply for the ImageVis3DMobile beta you need an iPhone or iPod touch (any generation works) with the iPhone OS 3.0 installed. If have such a co... wikitext text/x-wiki == ImageVis3D Mobile Beta Application == To apply for the ImageVis3DMobile beta you need an iPhone or iPod touch (any generation works) with the iPhone OS 3.0 installed. If have such a configuration perform the following steps: * Connect the device to your Mac or PC. * On the "Summary" tab in iTunes, click the "Serial Number" label. You'll notice "Serial Number" changes to "Identifier". * Click on "Edit" in the menu at the top and select "Copy". * Paste the device ID into an email together with your device type (e.g. iPhone, iPhone 3G, iPhone 3Gs, iPod Touch first gen, iPod Touch second gen, if you do know your device type simply write unknown device) and send it to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] * Wait for a mail back from us '''AFTER''', you received confirmation that you have been accepted for the program proceed to the download instructions [[ImageVis3DMobileBeta|here]. Note that is an official iPhone/iPod touch application beta test and thus it is '''not''' required that you jailbreak your iPhone/iPod touch to participate. 5446 5445 2009-08-27T11:18:46Z Jens 63 /* ImageVis3D Mobile Beta Application */ wikitext text/x-wiki == ImageVis3D Mobile Beta Application == To apply for the ImageVis3DMobile beta you need an iPhone or iPod touch (any generation works) with the iPhone OS 3.0 installed. If have such a configuration perform the following steps: * Connect the device to your Mac or PC. * On the "Summary" tab in iTunes, click the "Serial Number" label. You'll notice "Serial Number" changes to "Identifier". * Click on "Edit" in the menu at the top and select "Copy". * Paste the device ID into an email together with your device type (e.g. iPhone, iPhone 3G, iPhone 3Gs, iPod Touch first gen, iPod Touch second gen, if you do know your device type simply write unknown device) and send it to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] * Wait for a mail back from us '''AFTER''', you received confirmation that you have been accepted for the program proceed to the download instructions [[ImageVis3DMobileBeta|here]]. Note that is an official iPhone/iPod touch application beta test and thus it is '''not''' required that you jailbreak your iPhone/iPod touch to participate. 5450 5446 2009-08-27T14:28:51Z Tfogal 62 wording wikitext text/x-wiki == ImageVis3D Mobile Beta Application == To apply for the ImageVis3DMobile beta you need an iPhone or iPod touch (any generation works) with the iPhone OS 3.0 installed. If have such a configuration perform the following steps: * Connect the device to your Mac or PC. * On the "Summary" tab in iTunes, click the "Serial Number" label. You'll notice "Serial Number" changes to "Identifier". * Click on "Edit" in the menu at the top and select "Copy". * Paste the device ID into an email together with your device type (e.g. iPhone, iPhone 3G, iPhone 3Gs, iPod Touch first gen, iPod Touch second gen, if you do not know your device type simply write "unknown device") and send it to [mailto:jens@sci.uitah.edu jens@sci.utah.edu]. * Wait for a mail back from us. '''AFTER''' you receive confirmation that you have been accepted for the program proceed to the download instructions [[ImageVis3DMobileBeta|here]]. Note that is an official iPhone/iPod touch beta application and thus it is '''not''' required that you use the 'jailbreak' software on your iPhone/iPod touch to install it. 5452 5450 2009-08-27T14:31:25Z Tfogal 62 /* ImageVis3D Mobile Beta Application */ numbered list wikitext text/x-wiki == ImageVis3D Mobile Beta Application == To apply for the ImageVis3DMobile beta you need an iPhone or iPod touch (any generation works) with the iPhone OS 3.0 installed. If have such a configuration perform the following steps: # Connect the device to your Mac or PC. # On the "Summary" tab in iTunes, click the "Serial Number" label. You'll notice "Serial Number" changes to "Identifier". # Click on "Edit" in the menu at the top and select "Copy". # Paste the device ID into an email together with your device type (e.g. iPhone, iPhone 3G, iPhone 3Gs, iPod Touch first gen, iPod Touch second gen, if you do not know your device type simply write "unknown device") and send it to [mailto:jens@sci.uitah.edu jens@sci.utah.edu]. # Wait for a mail back from us. '''AFTER''' you receive confirmation that you have been accepted for the program proceed to the download instructions [[ImageVis3DMobileBeta|here]]. Note that is an official iPhone/iPod touch beta application and thus it is '''not''' required that you use the 'jailbreak' software on your iPhone/iPod touch to install it. File:BioMesh3DGuide.pdf 6 2642 5454 2009-08-27T18:50:38Z Ayla 57 BioMesh3D users guide wikitext text/x-wiki BioMesh3D users guide CIBC:Meshing 0 2603 5455 5340 2009-08-27T19:23:07Z Ayla 57 wikitext text/x-wiki =Meshing = [[CIBC:Meshing compiling| check out/compile/run]] [[CIBC:Meshing Results| collaborator meshing results]] [[CIBC:Meshing completed models| completed mesh projects]] BioMesh3D User's Guide ([[Image:BioMesh3DGuide.pdf]]) 5456 5455 2009-08-27T19:24:09Z Ayla 57 wikitext text/x-wiki =Meshing = [[CIBC:Meshing compiling| check out/compile/run]] [[CIBC:Meshing Results| collaborator meshing results]] [[CIBC:Meshing completed models| completed mesh projects]] [http://www.sci.utah.edu/cibc/wiki/images/1/15/BioMesh3DGuide.pdf BioMesh3D User's Guide ] 5457 5456 2009-08-27T19:24:20Z Ayla 57 wikitext text/x-wiki =Meshing = [[CIBC:Meshing compiling| check out/compile/run]] [[CIBC:Meshing Results| collaborator meshing results]] [[CIBC:Meshing completed models| completed mesh projects]] [http://www.sci.utah.edu/cibc/wiki/images/1/15/BioMesh3DGuide.pdf BioMesh3D User Guide ] Main Page 0 1 5458 5291 2009-08-28T18:17:50Z Ayla 57 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5459 5458 2009-08-28T18:20:12Z Ayla 57 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view these pages but you will need an account to edit them. To get one, please use this: <big>[http://www.sci.utah.edu/cgi-bin/SCIwiki_acct_req.pl?wiki=cibc <b>Account Request Form</b>]</big><br> We will set it up for you and email your login info as soon as possible. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] CIBC:ImageVis3D ChangeLog1.2 0 2643 5463 2009-11-03T19:08:05Z Tfogal 62 release notes wikitext text/x-wiki = ImageVis3D 1.2 = The ImageVis3D team is proud to announce the release of ImageVis3D 1.2! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. ImageVis3D 1.2 is a major release, bringing many new features and a great number of bugfixes. Changes since 1.1.1 include: New Features ------------ * ImageVis3D 1.2 can now convert and export data in 'I3M' format, to allow interoperation with ImageVis3D Mobile. * On the same token, ImageVis3D can be used as a data server for ImageVis3D Mobile. Enable ImageVis3D Mobile features in the 'User Interface' tab of the settings pane; see the wiki for more information. * Data conversion avoids scaling the data if it is not strictly necessary. * BOV files can now be exported. * The list of files supporting import and export is now queried at runtime, and unsupported configurations are not offered to the user. * The dividers in 2x2 (slice view) mode can now be repositioned. * If enabled in the settings, ImageVis3D will additionally scale the image resolution and sampling rate appropriately to maintain interactivity. This behaves like an extra level of detail: idling in the application will restore high quality resolution and sampling settings. * ImageVis3D will now notify a user where their successfully converted data file was stored. * The user can now explicitly set minimum and maximum LoDs to render. * The list of scripting commands given in 'help' is now alphabetized. * Lighting colors can now be adjusted. * Custom rescale factors can now be generated after conversion and saved into the UVF file. * UI widgets were added to display dataset information and metadata. * Debian and Ubuntu users can now get updates for ImageVis3D using their distribution's package manager and this launchpad PPA: https://launchpad.net/~tfogal/+archive/ppa This is currently only for 'development' (unstable) builds, though we hope to expand this support in future releases. Bugs fixed in this release -------------------------- * The BOV reader recognizes more BOVs as such. * Fixed a minor bug with the scaling factor for quantized datasets of signed types. * Some conversion code previously used the target instead of temporary directory when creating intermediate files. * Fixed some minor issues with the memory management for JPEG DICOMs. * The DICOM reader now recognizes a couple fields it (attempted to, often incorrectly) skip over previously. * A large memory leak while loading non-JPEG DICOMs was fixed. * Fixed a bug where the BOV reader failed to read the data file if the path listed in it was absolute, not relative. * The ClearView lens is now object aligned instead of screen aligned; this fixes stereo rendering with ClearView. * Fixed a bug in the relation of the visible slice plane (via the 'p' key) and the slice view. * Fixed the Windows installer version number; it was statically set to 1.0. * Fixed a potential crash when loading corrupted shaders. * Fixed a rare memory leak when deleting portions of a dataset when multiple datasets were loaded. * A minor issue validating some command line arguments was fixed. * Fixed a crash while loading TIFF volumes on some platforms. * Fixed histogram calculation for 2048^3 voxel or larger datasets. This also fixes a crash loading a dataset which was exactly 2048^3 voxels. * Fixed a bug which could cause ImageVis3D to crash if a dataset failed to convert. * Allow resizing of the bug report dialog, making it more usable on systems with low desktop resolutions. * Some minor issues were fixed which enable an experimental Cocoa-Qt based Mac build. The ImageVis3D does not plan to support such a configuration in the short term. * Missing shaders were added to the debian packages (.debs). * Fixed a crash which can occur when the "Basic" 2D transfer function editor tries to render an unlikely polygon which could only be created via the "Expert" 2D transfer function editor. * Filenames are validated early in the export process, allowing ImageVis3D to display error messages which are easier to understand. Changes which are only of interest to developers ------------------------------------------------ * Minor bugfixes and improvements to the 'Basics' library. * The IO layer was vastly reorganized to allow for easier integration of third party applications. This propagated into the renderer, simplifying data access in many places. * The non-UI components of ImageVis3D can be built without the Qt library, at a loss of some functionality. * Basic API additions were made to allow for future provenance support. * Checked iterators are disabled in Windows release builds. * Internal boost libraries were updated to 1.39. * Portions of the data conversion (quantization) code were templatized, reducing code duplication. * Added a basic unit testing framework, with some tests for the IO library as examples. * Libraries now use the tr1 library where appropriate; in particular, this requires the latest compiler and an extra library download for compilation using MSVC. * An indexing error caused the UVF library to think the MaxMin data block was smaller than it actually was, causing issues if it was not the last block in the UVF. All existing UVFs are incorrect, but ImageVis3D always put this data block last, making it a non-issue. * Fixed a bug querying the OpenGL context information from non-Qt applications. * A CMake-based build system is now maintained in the Tuvok tree, for ease of integration into third party apps which require CMake. * The debug system in Tuvok was revamped to make it significantly easier to add new channels, and prevent multiple format expansions. * Some duplicated, internal third party libraries were removed (inadvertently copied while splitting repositories). * A bug was fixed with the texture format for floating point data. Only third party apps could hit this bug; all data in ImageVis3D are quantized before they hit the renderer. * A preliminary bias and scale method of transfer function scaling was added, to allow rendering unquantized data. * A flag was added to force Tuvok to respect the existing depth buffer, and write into it if possible. This allows third party apps to more easily integrate Tuvok within a rendering pipeline. * A potential crash on exit (which could only happen in third party client apps) was fixed. * Finding the location of the manual during nightly builds was simplified. * APIs were updated to consistently use the capitalization, "Dataset". * The Qt build scripts were updated to work with modern releases of Qt. * The Mac and Windows build process was improved. Any Carbon-Qt installation should be able to build ImageVis3D on Mac. A Windows build can be created from qmake, sans a few minor annoyances. * A new command line tool allows examination or even generation of custom UVF files. Known issues with this release ------------------------------ * The 'Stack' ("stk"), single-file TIFF volume, and Fraunhofer EZRT ("rek") file formats can only be read, not written. * The 'Brick Of Values' (BOV) reader does not support BOVs in which the data are split across multiple files. * RGBA is the only kind of multicomponent data supported. * NVIDIA GPUs on both Linux and Macs expose a driver issue which can hang the system for prolonged periods of time. We recommend sticking with the slice based volume renderer on Mac and Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. * The manual is unfortunately out of date with respect to the current feature set. * DICOMs with some kinds of embedded 12- or 16-bit JPEGs will not be converted correctly. ImageVis3D 1.2 supports Intel Macs 10.5 and up (10.5.8 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or you can get the source directly from our subversion repository, using the 'svn' command: svn co https://gforge.sci.utah.edu/svn/imagevis3d or any other subversion client. We look forward to your feedback on this release. Best, - The ImageVis3D team. 5464 5463 2009-11-03T19:26:49Z Tfogal 62 /* ImageVis3D 1.2 */ formatting. damn wiki. wikitext text/x-wiki = ImageVis3D 1.2 = The ImageVis3D team is proud to announce the release of ImageVis3D 1.2! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. ImageVis3D 1.2 is a major release, bringing many new features and a great number of bugfixes. Changes since 1.1.1 include: New Features ------------ * ImageVis3D 1.2 can now convert and export data in 'I3M' format, to allow interoperation with ImageVis3D Mobile. * On the same token, ImageVis3D can be used as a data server for ImageVis3D Mobile. Enable ImageVis3D Mobile features in the 'User Interface' tab of the settings pane; see the wiki for more information. * Data conversion avoids scaling the data if it is not strictly necessary. * BOV files can now be exported. * The list of files supporting import and export is now queried at runtime, and unsupported configurations are not offered to the user. * The dividers in 2x2 (slice view) mode can now be repositioned. * If enabled in the settings, ImageVis3D will additionally scale the image resolution and sampling rate appropriately to maintain interactivity. This behaves like an extra level of detail: idling in the application will restore high quality resolution and sampling settings. * ImageVis3D will now notify a user where their successfully converted data file was stored. * The user can now explicitly set minimum and maximum LoDs to render. * The list of scripting commands given in 'help' is now alphabetized. * Lighting colors can now be adjusted. * Custom rescale factors can now be generated after conversion and saved into the UVF file. * UI widgets were added to display dataset information and metadata. * Debian and Ubuntu users can now get updates for ImageVis3D using their distribution's package manager and a [https://launchpad.net/~tfogal/+archive/ppa Launchpad PPA]. This is currently only for 'development' (unstable) builds, though we hope to expand this support in future releases. Bugs fixed in this release -------------------------- * The BOV reader recognizes more BOVs as such. * Fixed a minor bug with the scaling factor for quantized datasets of signed types. * Some conversion code previously used the target instead of temporary directory when creating intermediate files. * Fixed some minor issues with the memory management for JPEG DICOMs. * The DICOM reader now recognizes a couple fields it (attempted to, often incorrectly) skip over previously. * A large memory leak while loading non-JPEG DICOMs was fixed. * Fixed a bug where the BOV reader failed to read the data file if the path listed in it was absolute, not relative. * The ClearView lens is now object aligned instead of screen aligned; this fixes stereo rendering with ClearView. * Fixed a bug in the relation of the visible slice plane (via the 'p' key) and the slice view. * Fixed the Windows installer version number; it was statically set to 1.0. * Fixed a potential crash when loading corrupted shaders. * Fixed a rare memory leak when deleting portions of a dataset when multiple datasets were loaded. * A minor issue validating some command line arguments was fixed. * Fixed a crash while loading TIFF volumes on some platforms. * Fixed histogram calculation for 2048^3 voxel or larger datasets. This also fixes a crash loading a dataset which was exactly 2048^3 voxels. * Fixed a bug which could cause ImageVis3D to crash if a dataset failed to convert. * Allow resizing of the bug report dialog, making it more usable on systems with low desktop resolutions. * Some minor issues were fixed which enable an experimental Cocoa-Qt based Mac build. The ImageVis3D does not plan to support such a configuration in the short term. * Missing shaders were added to the debian packages (.debs). * Fixed a crash which can occur when the "Basic" 2D transfer function editor tries to render an unlikely polygon which could only be created via the "Expert" 2D transfer function editor. * Filenames are validated early in the export process, allowing ImageVis3D to display error messages which are easier to understand. Changes which are only of interest to developers ------------------------------------------------ * Minor bugfixes and improvements to the 'Basics' library. * The IO layer was vastly reorganized to allow for easier integration of third party applications. This propagated into the renderer, simplifying data access in many places. * The non-UI components of ImageVis3D can be built without the Qt library, at a loss of some functionality. * Basic API additions were made to allow for future provenance support. * Checked iterators are disabled in Windows release builds. * Internal boost libraries were updated to 1.39. * Portions of the data conversion (quantization) code were templatized, reducing code duplication. * Added a basic unit testing framework, with some tests for the IO library as examples. * Libraries now use the tr1 library where appropriate; in particular, this requires the latest compiler and an extra library download for compilation using MSVC. * An indexing error caused the UVF library to think the MaxMin data block was smaller than it actually was, causing issues if it was not the last block in the UVF. All existing UVFs are incorrect, but ImageVis3D always put this data block last, making it a non-issue. * Fixed a bug querying the OpenGL context information from non-Qt applications. * A CMake-based build system is now maintained in the Tuvok tree, for ease of integration into third party apps which require CMake. * The debug system in Tuvok was revamped to make it significantly easier to add new channels, and prevent multiple format expansions. * Some duplicated, internal third party libraries were removed (inadvertently copied while splitting repositories). * A bug was fixed with the texture format for floating point data. Only third party apps could hit this bug; all data in ImageVis3D are quantized before they hit the renderer. * A preliminary bias and scale method of transfer function scaling was added, to allow rendering unquantized data. * A flag was added to force Tuvok to respect the existing depth buffer, and write into it if possible. This allows third party apps to more easily integrate Tuvok within a rendering pipeline. * A potential crash on exit (which could only happen in third party client apps) was fixed. * Finding the location of the manual during nightly builds was simplified. * APIs were updated to consistently use the capitalization, "Dataset". * The Qt build scripts were updated to work with modern releases of Qt. * The Mac and Windows build process was improved. Any Carbon-Qt installation should be able to build ImageVis3D on Mac. A Windows build can be created from qmake, sans a few minor annoyances. * A new command line tool allows examination or even generation of custom UVF files. Known issues with this release ------------------------------ * The 'Stack' ("stk"), single-file TIFF volume, and Fraunhofer EZRT ("rek") file formats can only be read, not written. * The 'Brick Of Values' (BOV) reader does not support BOVs in which the data are split across multiple files. * RGBA is the only kind of multicomponent data supported. * NVIDIA GPUs on both Linux and Macs expose a driver issue which can hang the system for prolonged periods of time. We recommend sticking with the slice based volume renderer on Mac and Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. * The manual is unfortunately out of date with respect to the current feature set. * DICOMs with some kinds of embedded 12- or 16-bit JPEGs will not be converted correctly. ImageVis3D 1.2 supports Intel Macs 10.5 and up (10.5.8 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or you can get the source directly from our subversion repository, using the 'svn' command: svn co https://gforge.sci.utah.edu/svn/imagevis3d or any other subversion client. We look forward to your feedback on this release. Best, - The ImageVis3D team. CIBC:ImageVis3D 0 2614 5465 5462 2009-11-11T19:09:46Z Tfogal 62 /* Past Release Archive */ Remove the archive of past releases. Available on the SW site, pain to maintain in 2 places. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://www.sci.utah.edu/lists/ iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [http://www.sci.utah.edu/images/docs/imagevis3d.pdf ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feedback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License === Roadmap === The following list shows the <span style="font-weight:bold; color:red">present</span> and future development stages of ImageVis3D, up to the version 1.0. The top level list elements show the version number together with a short description of the main features/purpose of this version, and an (estimated) release data. The version we are currently working on is marked in <span style="font-weight:bold; color:red">red</span>. In that current version all completed features are marked in <span style="font-weight:bold; color:green">green</span>. ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5466 5465 2009-11-11T19:10:32Z Tfogal 62 /* Roadmap */ we've hit 1.0 =) the roadmap was always out of date anyway. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ here.] === Compile it Yourself === Assuming that you already have Qt 4.4 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we have provided some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://www.sci.utah.edu/lists/ iv3d-users]'' mailing list, or join in the development on ''iv3d-develop''. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the ''iv3d-users'' mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === The [http://www.sci.utah.edu/images/docs/imagevis3d.pdf ImageVis3D 1.0 manual] is now available. === Video Tutorials === First Start * initial setup <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Initial_Setup.mov MOV]<nowiki>]</nowiki> * the welcome screen <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/00_Welcome_Screen.mov MOV]<nowiki>]</nowiki> Loading Data * from a native UVF File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/01_Load_A_Native_UVF_File.mov MOV]<nowiki>]</nowiki> * from an external File <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/02_Load_And_Convert_An_External_File.mov MOV]<nowiki>]</nowiki> * from a directory of files (e.g. DICOM, Images) <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/03_Load_Data_From_A_Stack_Of_Files.mov MOV]<nowiki>]</nowiki> Rendering * general rendermodes <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/04_Changing_Rendermodes.mov MOV]<nowiki>]</nowiki> * the LOD system <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/05_The_LOD_System.mov MOV]<nowiki>]</nowiki> * 2D slice and MIP views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/06_2D_Slice_And_MIP_Views.mov MOV]<nowiki>]</nowiki> * locking views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/07_Locking_Windows.mov MOV]<nowiki>]</nowiki> * red/blue (anaglyph) stereo <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/08_Stereo_Rendering.mov MOV]<nowiki>]</nowiki> Recording * 3D views <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/09_Recodring_3D_Views.mov MOV]<nowiki>]</nowiki> * MIP rotations Feedback * Submitting an error report <nowiki>[</nowiki>[http://www.sci.utah.edu/~jens/ImageVis3D/movies/10_Submitting_An_Error_Report.mov MOV]<nowiki>]</nowiki> more coming soon. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5469 5466 2010-01-08T03:28:46Z Tfogal 62 update, lots of obsolete material previously, added a "key" for understanding us weirdo devs ;) wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download milestone releases [http://www.sci.utah.edu/download/imagevis3d.html here] or the latest build [http://www.sci.utah.edu/devbuilds/imagevis3d/ here] and simply run it. For windows if you do not download the installler but the packed binaries make sure you also download and install the Microsoft C++ 2008 runtime which is available for 32 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86] and for 64 bit systems [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]. Note that you may need the 32 bit version of the redist even on a 64 bit machine if you use the 32 bit version of ImageVis3D. No other prerequisites are required for ImageVis3D to run.[[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can also download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site.] Note that the command line converter is not officially supported; in particular, the names of command line options which are currently accepted are likely to change in a future release. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://www.sci.utah.edu/lists/ iv3d-users]'' mailing list, or join in the development on [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop]. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A quick guide: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''V'''olume '''R'''endering '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5470 5469 2010-01-08T03:33:48Z Tfogal 62 /* Download the binary */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site.] Note that the command line converter is not officially supported; in particular, the names of command line options which are currently accepted are likely to change in a future release. In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://www.sci.utah.edu/lists/ iv3d-users]'' mailing list, or join in the development on [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop]. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A quick guide: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''V'''olume '''R'''endering '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5471 5470 2010-01-08T03:36:42Z Tfogal 62 /* Compile it Yourself */ note on Qt's Qt. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site.] Note that the command line converter is not officially supported; in particular, the names of command line options which are currently accepted are likely to change in a future release. In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. We encourage you to give us your feedback on the ''[http://www.sci.utah.edu/lists/ iv3d-users]'' mailing list, or join in the development on [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop]. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A quick guide: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''V'''olume '''R'''endering '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5472 5471 2010-01-08T20:54:30Z Tfogal 62 /* Join the Community */ update the mailing lists. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site.] Note that the command line converter is not officially supported; in particular, the names of command line options which are currently accepted are likely to change in a future release. In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide can be [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5473 5472 2010-01-08T21:31:17Z Tfogal 62 /* ImageVis3D Mobile */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site.] Note that the command line converter is not officially supported; in particular, the names of command line options which are currently accepted are likely to change in a future release. In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5478 5473 2010-03-11T18:52:23Z Tfogal 62 /* Compile it Yourself */ add "recursive" to example qmake invocation. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site.] Note that the command line converter is not officially supported; in particular, the names of command line options which are currently accepted are likely to change in a future release. In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5488 5478 2010-05-28T19:31:28Z Tfogal 62 /* Download the binary */ note converter issue wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">As we are now using C++ tr1 functionality you need to download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5489 5488 2010-05-28T19:33:24Z Tfogal 62 /* Compile it Yourself */ make it clear this is windows only stuff wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5492 5489 2010-07-13T20:11:10Z Daniel 58 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5493 5492 2010-07-13T20:11:48Z Daniel 58 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5494 5493 2010-07-13T20:20:25Z Daniel 58 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. This is a test. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5495 5494 2010-07-13T20:21:01Z Daniel 58 wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5496 5495 2010-07-13T20:36:47Z Tfogal 62 /* Compile it Yourself */ add a bit on apple builds wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5497 5496 2010-07-13T20:42:50Z Tfogal 62 /* Experimental 64-bit Mac Builds */ more info on apple 64bit wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5501 5497 2010-07-13T20:46:09Z Tfogal 62 /* Experimental 64-bit Mac Builds */ wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5502 5501 2010-07-13T21:00:32Z Tfogal 62 /* Experimental 64-bit Mac Builds */ finish 64-bit apple build doc wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Check out the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. == Development Information == === Design Principles === * Lightweight Application * Interactive * Large Dataset Support * Flexible UI * Support a Wide range of Software & Hardware * Foundation for other Apps * Foundation for Research Projects * MIT License ==== Near Term Development Focus ==== * ImageVis3D Mobile * Nearest neighbor interpolation option. ==== Long Term Development Focus ==== * Shader factory * Interactive merging of multiple datasets. 5503 5502 2010-07-13T21:59:35Z Tfogal 62 removed 'development information'. it was dumb, and we never keep it up to date anyway. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Check out the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. 5504 5503 2010-07-13T22:02:19Z Tfogal 62 /* Experimental 64-bit Mac Builds */ wording wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Download the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. 5505 5504 2010-10-01T16:36:48Z Tfogal 62 add section nothing import manual. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Download the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Importing Data == The most commonly asked question we get is, "How can I import my data into ImageVis3D?". Every now and again, people also ask us about our custom file format, UVF, why it exists, and if they can use or read such data in other tools. All of these questions and more are answered in a fairly comprehensive [http://ci.sci.utah.edu:8011/devbuilds/GettingDataIntoImageVis3D.pdf Getting Data into ImageVis3D] document. == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. 5506 5505 2010-10-01T16:43:22Z Tfogal 62 note launchpad, MLs wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Download the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Importing Data == The most commonly asked question we get is, "How can I import my data into ImageVis3D?". Every now and again, people also ask us about our custom file format, UVF, why it exists, and if they can use or read such data in other tools. All of these questions and more are answered in a fairly comprehensive [http://ci.sci.utah.edu:8011/devbuilds/GettingDataIntoImageVis3D.pdf Getting Data into ImageVis3D] document. If you have further questions, please contact us on one of the mailing lists mentioned below! == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. We track bugs using the [https://launchpad.net/imagevis3d Launchpad] service. If you use ImageVis3D's builtin bug reporter, it will typically end up as a bug report on Launchpad. You can create a launchpad account to be able to subscribe to bugs and receive email when a related issue comes up, but this is not required. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. 5511 5506 2010-11-25T15:48:13Z Tfogal 62 /* Windows-only Caveats */ Note 4.7 broken. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== '''note''': ''We have heard many reports that iv3d's "Scripts/" as well as iv3d do not work with qt 4.7. This is in our queue and will be resolved. In the meantime, please use qt 4.6 unless you are willing to diagnose and provide patches to fix the 4.7 problems. Thanks!'' If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You must build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Download the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Importing Data == The most commonly asked question we get is, "How can I import my data into ImageVis3D?". Every now and again, people also ask us about our custom file format, UVF, why it exists, and if they can use or read such data in other tools. All of these questions and more are answered in a fairly comprehensive [http://ci.sci.utah.edu:8011/devbuilds/GettingDataIntoImageVis3D.pdf Getting Data into ImageVis3D] document. If you have further questions, please contact us on one of the mailing lists mentioned below! == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. We track bugs using the [https://launchpad.net/imagevis3d Launchpad] service. If you use ImageVis3D's builtin bug reporter, it will typically end up as a bug report on Launchpad. You can create a launchpad account to be able to subscribe to bugs and receive email when a related issue comes up, but this is not required. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. 5512 5511 2010-12-02T01:51:45Z Tfogal 62 /* Windows-only Caveats */ note that 4.7 is broken. wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== '''note''': ''ImageVis3D exposes [http://bugreports.qt.nokia.com/browse/QTBUG-15782 Qt bug 15782]. As such, Qt 4.7 is unsupported at this time. Please use qt 4.6 for now. Thanks!'' '''double-note''': ''As a result of the aforementioned bug, we cannot support Visual Studio 2010 at this time. Sorry! We'd like to use it just as much as you, and we'll be sure to upgrade as soon as we can!'' If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You ''must'' build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Download the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Importing Data == The most commonly asked question we get is, "How can I import my data into ImageVis3D?". Every now and again, people also ask us about our custom file format, UVF, why it exists, and if they can use or read such data in other tools. All of these questions and more are answered in a fairly comprehensive [http://ci.sci.utah.edu:8011/devbuilds/GettingDataIntoImageVis3D.pdf Getting Data into ImageVis3D] document. If you have further questions, please contact us on one of the mailing lists mentioned below! == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. We track bugs using the [https://launchpad.net/imagevis3d Launchpad] service. If you use ImageVis3D's builtin bug reporter, it will typically end up as a bug report on Launchpad. You can create a launchpad account to be able to subscribe to bugs and receive email when a related issue comes up, but this is not required. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. ImageVis3DMobile 0 2638 5467 5449 2009-11-20T20:03:56Z Tfogal 62 /* ImageVis3D Mobile */ remove beta testing links... it's released now. wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile one can transfer their own data directly from a desktop to a mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two fingers to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, ''you must click on 'start' again'' to actually start the network server. == Date exchange from mobile device to mobile device == ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if both devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices. In the popup window connect to your peer, and finally select the dataset to be transferred on the source device. == The Transfer Function Editor == In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. 5479 5467 2010-03-29T13:57:47Z Jens 63 /* The Transfer Function Editor */ wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile one can transfer their own data directly from a desktop to a mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two fingers to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, ''you must click on 'start' again'' to actually start the network server. == Date exchange from mobile device to mobile device == ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if both devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices. In the popup window connect to your peer, and finally select the dataset to be transferred on the source device. == The Transfer Function Editor == Since Version 1.1 the transfer function editor is not in a seperate tab anymore but rendered as an overlay over the actual data. To start it simpy double tab on the dataser, In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. 5480 5479 2010-04-17T20:51:15Z Jens 63 wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = <span style="color:#FF0000">Approved Beta testers please click </span>[[ImageVis3DMobileBeta|this link]]<span style="color:#FF0000"> for instructions on how to install the latest version on your device. To apply for the ImageVis3D beta program please</span> [[ImageVis3DMobileBetaApplication|follow this link]]. ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile one can transfer their own data directly from a desktop to a mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two fingers to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, ''you must click on 'start' again'' to actually start the network server. == Date exchange from mobile device to mobile device == ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if both devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices. In the popup window connect to your peer, and finally select the dataset to be transferred on the source device. == The Transfer Function Editor == Since Version 1.1 the transfer function editor is not in a seperate tab anymore but rendered as an overlay over the actual data. To start it simpy double tab on the dataser, In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. 5490 5480 2010-06-04T12:36:09Z Jens 63 wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = <span style="color:#FF0000">Approved Beta testers for ImageVis3D Mobile 2.0 please click </span>[[ImageVis3DMobileBeta|this link]]<span style="color:#FF0000"> for instructions on how to install the latest version on your device. To apply for the ImageVis3D Mobile 2.0 beta program please</span> [[ImageVis3DMobileBetaApplication|follow this link]]. ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile one can transfer their own data directly from a desktop to a mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two fingers to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of Imagevis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == To upload a new dataset to the iPhone/iPod touch switch to the dataset selection view (second icon on the bottom), scroll down to the bottom of the page and select "receive data". In the next screen enter the IP address of the desktop machine that runs ImageVis3D and a port you specified in that desktop. Finally select "Start Transfer". On the desktop side you first need to enable the ImageVis3D Mobile features in the Settings, under "Memory". After turning the ImageVis3D Mobile support on you should see a new option in the "File"-menu named "Transfer To ImageVis3D Mobile Device". Now open the dataset you want to transfer and select this new option. A dialog box opens. If you are transferring data for the first time you should double check the network port is a good one; if you have a firewall installed, note that ImageVis3D uses a single TCP port for the entire communication, (22 by default). After that click start to begin the data set conversion process and then run the network server to which your mobile device well then connect. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, ''you must click on 'start' again'' to actually start the network server. == Date exchange from mobile device to mobile device == ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if both devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices. In the popup window connect to your peer, and finally select the dataset to be transferred on the source device. == The Transfer Function Editor == Since Version 1.1 the transfer function editor is not in a seperate tab anymore but rendered as an overlay over the actual data. To start it simpy double tab on the dataser, In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. 5510 5490 2010-10-10T11:03:45Z Jens 63 wikitext text/x-wiki ImageVis3D Mobile is a volume rendering application for handheld devices. = ImageVis3D Mobile = <span style="color:#FF0000">Approved Beta testers for ImageVis3D Mobile 2.0 please click </span>[[ImageVis3DMobileBeta|this link]]<span style="color:#FF0000"> for instructions on how to install the latest version on your device. To apply for the ImageVis3D Mobile 2.0 beta program please</span> [[ImageVis3DMobileBetaApplication|follow this link]]. ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile one can transfer their own data directly from a desktop to a mobile device. ImageVis3D supports all iPod touches and iPhones (including the new iPhone 3Gs). You can download the application via the Apple App Store or request a pre-release from the ImageVis3D team. == Quickstart Instructions == When you start ImageVis3D Mobile it will automatically load your last data set (or one of the demo datasets if you start it for the first time). To interact with the data simply use one finger to rotate and two fingers to zoom in or out. The four buttons on the bottom (from left to right) allow you to view your data; switch the data set and upload new data from your desktop version of ImageVis3D; edit the transfer function; and change settings (note that lighting is only available on the new iPhone 3GS). == Uploading Data == Since ImageVis3D Mobile 2.0 we use a different mechanism than before of transfering data from ImageVis3D to ImageVis3D Mobile, please see the manual at [http://ivda.cs.uni-saarland.de/fileadmin/IV3Dm/UserGuide2.0.pdf here] for details. === Windows Firewall === On Windows you may see a message from the built-in firewall asking you to allow or deny ImageVis3D access to the network. You must allow ImageVis3D access for data transfer to work. After allowing ImageVis3D access, ''you must click on 'start' again'' to actually start the network server. == Date exchange from mobile device to mobile device == <span style="color:#FF0000">Note: this feature is disabled in Version 2.0 but will return in the next release 2.1<span style="color:#FF0000"> ImageVis3D Mobile also allows you to transfer data directly from one mobile device to the other if both devices support bluetooth. To transfer data simply select "Exchange with other Device" from the "Select Dataset" view on both devices. In the popup window connect to your peer, and finally select the dataset to be transferred on the source device. == The Transfer Function Editor == Since Version 1.1 the transfer function editor is not in a separate tab anymore but rendered as an overlay over the actual data. To start it simply double tab on the dataset, In the transfer function editor you can draw the transfer function for red, green, blue, and the opacity just like in ImageVis3D. Use the square in the top left corner to toggle the component you want to edit. To return to the main screen hit the screen with two fingers. File:BioMesh3DGuide.pdf 6 2642 5468 5454 2009-11-20T23:08:45Z Ayla 57 uploaded a new version of "[[Image:BioMesh3DGuide.pdf]]" wikitext text/x-wiki BioMesh3D users guide IV3D-Buildbot 0 2644 5474 2010-01-19T01:51:37Z Tfogal 62 New page: ImageVis3D uses a buildbot to automate compilation on supported platforms. = Windows Setup = == Prerequisites == * Of course, setup your build env just as you would to compile ImageVis3... wikitext text/x-wiki ImageVis3D uses a buildbot to automate compilation on supported platforms. = Windows Setup = == Prerequisites == * Of course, setup your build env just as you would to compile ImageVis3D normally. One special note: do '''not''' install MSVC to a non-standard location. * Subversion, with command line client. Author recommends [http://www.sliksvn.com/en/download SilkSVN] * GnuWin32 [http://gnuwin32.sourceforge.net/downlinks/grep-bin.php grep] * GnuWin32 [http://gnuwin32.sourceforge.net/downlinks/gawk.php gawk] == Path settings == Add directories to your PATH variable so that 'svn', 'awk', and 'grep' work simply by opening a visual studio shell. SilkSVN appears to do this by default. By default, GnuWin32 will place awk and grep in ''C:\Program Files (x86)\GnuWin32\bin'' 5475 5474 2010-01-19T01:56:40Z Tfogal 62 wikitext text/x-wiki ImageVis3D uses a buildbot to automate compilation on supported platforms. = Windows Setup = == Prerequisites == * Of course, setup your build env just as you would to compile ImageVis3D normally. One special note: do '''not''' install MSVC to a non-standard location. * Subversion, with command line client. Author recommends [http://www.sliksvn.com/en/download SilkSVN] * GnuWin32 [http://gnuwin32.sourceforge.net/downlinks/grep-bin.php grep] * GnuWin32 [http://gnuwin32.sourceforge.net/downlinks/gawk.php gawk] You could probably also install the full GnuWin32 package, or even Cygwin, if you'd like. Such configurations are untested. == Path settings == Add directories to your PATH variable so that 'svn', 'awk', and 'grep' work simply by opening a visual studio shell. SilkSVN appears to do this by default. By default, GnuWin32 will place awk and grep in ''C:\Program Files (x86)\GnuWin32\bin'' CIBC:ImageVis3D ChangeLog1.3 0 2645 5476 2010-02-19T00:34:01Z Tfogal 62 uploaded 1.3 release notes wikitext text/x-wiki = ImageVis3D 1.3 = The ImageVis3D team is proud to announce the release of ImageVis3D 1.3! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. ImageVis3D 1.3 is a major release, bringing many new features and a great number of bugfixes. Changes since 1.2 include: == New Features == * Long running operations (such as capturing rotations) can now be cancelled. * (Temporarily) allow LoadDataset to be 'interactive' in scripting mode, which allows conversion of raw data in this mode. * The maximum brick size used is now a configurable parameter in the settings. This brings us a step closer to supporting integrated Intel chipsets. * "Capture mode", which is enabled when capturing a rotation or scripting ImageVis3D, will now always render the data at its native resolution. * Page up/Page down can be used to move a slice 10% through the dataset. Use the mouse wheel for fine-scale positioning. * ImageVis3D can now quantize data down to 8bit when exporting to ImageVis3D Mobile. This will be needed in future incarnations of the Mobile tool. == Bugs fixed in this release == * A Mac-only crash which could occur while closing a render window was fixed. * Instead of crashing(!), users are warned when their video card lacks the needed 3D texture size, and asked if they want to proceed at their own risk. * A bug was fixed loading some types of embedded JPEGs in DICOMs. * Clip planes now properly respect relative locking. * The progress viewer is now kept up to date while capturing a rotation. * Mouse wheel rotations were normalized when iterating through slice views, in particular to ensure that "mighty mouse" Mac mice will not scroll too quickly. * Interaction with ImageVis3D Mobile was added to the manual's documentation. * Reset ("r") now properly resets window sizes in 2x2 mode. * ImageVis3D now draws circular control widget for all controllable points in the "Basic" mode 2D transfer function editor, instead of just the first few. * Fixed a bug in the rotation direction when capturing a MIP rotation for some views. * A bug was fixed rendering iso-surfaces when in 2x2 mode. * Capturing a "sequence frame" in previous versions could, in some circumstances, append an incorrect number. The semantics were updated slightly to make the "last saved image number" detection more robust. * Directories which do not open will not be closed; in rare cases, this used to cause crashes on Mac systems. * ImageVis3D is now more forgiving for the case of converting multiple different files at the same time. * Fix loading/conversion of unsigned 16bit data (silently/accidently truncated to 12 bits in 1.2.0). * Use the correct dataset scaling factors when exporting to IV3D Mobile. * Conversion of RGBA datasets was fixed by updating the calculation of the size of a UVF data block. * The Fraunhofer EZRT ("REK") converter was updated to remove assumptions of machine and data file endianness. == Changes which are only of interest to developers == * The "Upload" button was removed from the debug log UI. The anonymous error reports it produced were never useful. * The version of Qt used was upgraded to 4.6.0. * Some documentation was added to the repository on how to define your own converter. Users will need to build ImageVis3D from source for this. * Many Tuvok classes were (finally) moved into the "tuvok" namespace. == Known issues with this release == * The 'Stack' ("stk"), single-file TIFF volume, and Fraunhofer EZRT ("rek") file formats can only be read, not written. * The 'Brick Of Values' (BOV) reader does not support BOVs in which the data are split across multiple files. * RGBA is the only kind of multicomponent data supported. * NVIDIA GPUs on both Linux and Macs expose a driver issue which can hang the system for prolonged periods of time. To workaround this issue, we recommend sticking with the slice based volume renderer on Mac and Linux for this release. * Full-color datasets do not display a proper histogram in the transfer function editors. * In any mode but MIP, the `Recorder' always uses the highest resolution data, regardless of any other settings. * In the "Disable LOD" mode of MIP Recordings, progress information is not given. Progress is being made; a visibly-correct rendering is not required to create an on-disk image which is visibly correct. * The ClearView lens does not position itself properly when the screen is in low-res mode to achieve faster rendering. * On some systems, making a render window larger does not in and of itself does not cause the window to update its rendering. As a workaround, Dragging the window or opening a menu forces an update. ImageVis3D 1.3 supports Intel Macs 10.5 and up (10.5.8 highly recommended), Windows, and Linux. Binaries are available at: http://www.sci.utah.edu/download/imagevis3d.html the nightly 'developer builds' site: http://www.sci.utah.edu/devbuilds/imagevis3d/ or you can get the source directly from our subversion repository, using the 'svn' command: svn co https://gforge.sci.utah.edu/svn/imagevis3d or any other subversion client. We look forward to your feedback on this release. Best, - The ImageVis3D team. Main Page 0 1 5477 5459 2010-02-22T21:11:53Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5499 5477 2010-07-13T20:45:01Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Pleeease Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5500 5499 2010-07-13T20:45:15Z Erikj 2 /* Pleeease Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] ImageVis3DMobileBeta 0 2640 5481 5453 2010-04-21T06:22:48Z Jens 63 added iPad wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your device ID to the ImageVis3D Mobile team and have received confirmation that your application has been accepted, follow these steps: # Download the mobile provision and application zip files from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ here] # Connect the device to your Mac or PC. # Drag the attached mobileprovision file into your media library in itunes # Extract the attached *.zip file and drag the *.app file into your media library in itunes # Sync your iPhone, iPod touch, or iPad # Disconnect the device and enjoy ImageVis3D Mobile '''Note:''' The app will '''not''' work on your device before you received confirmation and we included your ID in the distribution! Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a [[ImageVis3DMobileBetaApplication | confirmed beta tester]]. 5483 5481 2010-05-13T02:18:29Z Jens 63 added link to unstall page wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your device ID to the ImageVis3D Mobile team and have received confirmation that your application has been accepted, follow these steps: # If you have previously installed a beta of ImageVis3D mobile you first need to unistall it [[ImageVis3DMobileBetaCleanup | click here]]. # Download the mobile provision and application zip files from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ here] # Connect the device to your Mac or PC. # Drag the attached mobileprovision file into your media library in itunes # Extract the attached *.zip file and drag the *.app file into your media library in itunes # Sync your iPhone, iPod touch, or iPad # Disconnect the device and enjoy ImageVis3D Mobile '''Note:''' The app will '''not''' work on your device before you received confirmation and we included your ID in the distribution! Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a [[ImageVis3DMobileBetaApplication | confirmed beta tester]]. 5491 5483 2010-06-04T12:38:59Z Jens 63 wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your device ID to the ImageVis3D Mobile team and have received confirmation that your application has been accepted, follow these steps: # If you have previously installed a beta of ImageVis3D mobile you first need to unistall it [[ImageVis3DMobileBetaCleanup | click here]]. # Download the mobile provision from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ImageVis3D_Mobile_Profile_AdHoc.mobileprovision here] # Connect the device to your Mac or PC. # Drag the attached mobileprovision file into your media library in itunes # Download the application [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ImageVis3DMobile.ipa here] and open it with iTunes # Sync your iPhone, iPod touch, or iPad # Disconnect the device and enjoy ImageVis3D Mobile '''Note:''' The app will '''not''' work on your device before you received confirmation and we included your ID in the distribution! Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a [[ImageVis3DMobileBetaApplication | confirmed beta tester]]. 5507 5491 2010-10-10T10:44:59Z Jens 63 wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your device ID to the ImageVis3D Mobile team and have received confirmation that your application has been accepted, follow these steps: # If you have previously installed a beta of ImageVis3D mobile you first need to unistall it [[ImageVis3DMobileBetaCleanup | click here]]. # Download the mobile provision from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ImageVis3D_Mobile_Profile_AdHoc.mobileprovision here] # Connect the device to your Mac or PC. # Drag the attached mobileprovision file into your media library in itunes # Download the application [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ImageVis3DMobile.zip here] and open it with iTunes # Sync your iPhone, iPod touch, or iPad # Disconnect the device and enjoy ImageVis3D Mobile '''Note:''' The app will '''not''' work on your device before you received confirmation and we included your ID in the distribution! Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a [[ImageVis3DMobileBetaApplication | confirmed beta tester]]. 5508 5507 2010-10-10T10:57:16Z Jens 63 added note on the new dataset server wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your device ID to the ImageVis3D Mobile team and have received confirmation that your application has been accepted, follow these steps: # If you have previously installed a beta of ImageVis3D mobile you first need to unistall it [[ImageVis3DMobileBetaCleanup | click here]]. # Download the mobile provision from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ImageVis3D_Mobile_Profile_AdHoc.mobileprovision here] # Connect the device to your Mac or PC. # Drag the attached mobileprovision file into your media library in itunes # Download the application [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ImageVis3DMobile.zip here] unpack it and drag it into iTunes # Sync your iPhone, iPod touch, or iPad # Disconnect the device and enjoy ImageVis3D Mobile '''Note:''' The app will '''not''' work on your device before you received confirmation and we included your ID in the distribution! '''Another Note:''' Since ImageVis3D Mobile 2.0 we use a different mecahnism of transfering data from ImageVis3D to ImageVis3D Mobile, please see the manual at http://ivda.cs.uni-saarland.de/fileadmin/IV3Dm/UserGuide2.0.pdf here] for details. Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a [[ImageVis3DMobileBetaApplication | confirmed beta tester]]. 5509 5508 2010-10-10T10:58:48Z Jens 63 formatting wikitext text/x-wiki == ImageVis3D Mobile Ad-Hoc Distribution Installation == Once you send your device ID to the ImageVis3D Mobile team and have received confirmation that your application has been accepted, follow these steps: # If you have previously installed a beta of ImageVis3D mobile you first need to unistall it [[ImageVis3DMobileBetaCleanup | click here]]. # Download the mobile provision from [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ImageVis3D_Mobile_Profile_AdHoc.mobileprovision here] # Connect the device to your Mac or PC. # Drag the attached mobileprovision file into your media library in itunes # Download the application [http://www.sci.utah.edu/~jens/ImageVis3DMobile/ImageVis3DMobile.zip here] unpack it and drag it into iTunes # Sync your iPhone, iPod touch, or iPad # Disconnect the device and enjoy ImageVis3D Mobile '''Note:''' The app will '''not''' work on your device before you received confirmation and we included your ID in the distribution! '''Another Note:''' Since ImageVis3D Mobile 2.0 we use a different mecahnism of transfering data from ImageVis3D to ImageVis3D Mobile, please see the manual at [http://ivda.cs.uni-saarland.de/fileadmin/IV3Dm/UserGuide2.0.pdf here] for details. Please report any bugs, issues, feature requests to [mailto:jens@sci.uitah.edu jens@sci.utah.edu] Again, this process only works if you are a [[ImageVis3DMobileBetaApplication | confirmed beta tester]]. ImageVis3DMobileBetaApplication 0 2641 5482 5452 2010-04-21T06:23:34Z Jens 63 added iPad wikitext text/x-wiki == ImageVis3D Mobile Beta Application == To apply for the ImageVis3DMobile beta you need an iPhone, Pod touch (any generation works) with the iPhone OS 3.0 installed, or an iPad. If have such a configuration perform the following steps: # Connect the device to your Mac or PC. # On the "Summary" tab in iTunes, click the "Serial Number" label. You'll notice "Serial Number" changes to "Identifier". # Click on "Edit" in the menu at the top and select "Copy". # Paste the device ID into an email together with your device type (e.g. iPhone, iPhone 3G, iPhone 3Gs, iPod Touch first gen, iPod Touch second gen, if you do not know your device type simply write "unknown device") and send it to [mailto:jens@sci.uitah.edu jens@sci.utah.edu]. # Wait for a mail back from us. '''AFTER''' you receive confirmation that you have been accepted for the program proceed to the download instructions [[ImageVis3DMobileBeta|here]]. Note that is an official iPhone/iPod touch beta application and thus it is '''not''' required that you use the 'jailbreak' software on your iPhone/iPod touch to install it. 5486 5482 2010-05-13T02:25:37Z Jens 63 /* ImageVis3D Mobile Beta Application */ wikitext text/x-wiki == ImageVis3D Mobile Beta Application == To apply for the ImageVis3DMobile beta you need an iPad, iPhone, Pod touch (any generation works) with the iPhone OS 3.0 installed, or an iPad. If have such a configuration perform the following steps: # Connect the device to your Mac or PC. # On the "Summary" tab in iTunes, click the "Serial Number" label. You'll notice "Serial Number" changes to "Identifier". # Click on "Edit" in the menu at the top and select "Copy". # Paste the device ID into an email together with your device type (e.g. iPad, iPhone, iPhone 3G, iPhone 3Gs, any iPod Touch, if you do not know your device type simply write "unknown device") and send it to [mailto:jens@sci.uitah.edu jens@sci.utah.edu]. # Wait for a mail back from us. '''AFTER''' you receive confirmation that you have been accepted for the program proceed to the download instructions [[ImageVis3DMobileBeta|here]]. Note that is an official iPad/iPhone/iPod touch beta application and thus it is '''not''' required that you use the 'jailbreak' software on your iPad/iPhone/iPod touch to install it. ImageVis3DMobileBetaCleanup 0 2646 5484 2010-05-13T02:22:02Z Jens 63 Created page with '== ImageVis3D Mobile Beta Uninstall == # delete ImageVis3D Mobile from iTunes # delete ImageVis3D Mobile from your device(s) # delete all ImageVis3D provisioning profiles form t…' wikitext text/x-wiki == ImageVis3D Mobile Beta Uninstall == # delete ImageVis3D Mobile from iTunes # delete ImageVis3D Mobile from your device(s) # delete all ImageVis3D provisioning profiles form the device ## on your device tab go onto settings ## select profile ## delete all profiles that start with "ImageVis3D Mobile" # connect your device to your Mac / PC 5485 5484 2010-05-13T02:23:44Z Jens 63 /* ImageVis3D Mobile Beta Uninstall */ wikitext text/x-wiki == ImageVis3D Mobile Beta Uninstall == # delete ImageVis3D Mobile from iTunes # delete ImageVis3D Mobile from your device(s) # delete all ImageVis3D provisioning profiles form the device ## on your device tab go onto settings ## select profile ## delete all profiles that start with "ImageVis3D Mobile" # connect your device to your Mac / PC return to [[ImageVis3DMobileBeta | beta install]]. 5487 5485 2010-05-13T02:27:26Z Jens 63 /* ImageVis3D Mobile Beta Uninstall */ wikitext text/x-wiki == ImageVis3D Mobile Beta Uninstall == # delete ImageVis3D Mobile from iTunes # delete ImageVis3D Mobile from your device(s) # delete all ImageVis3D provisioning profiles form all of your device(s) ## on each device tab onto "settings" ## select "profiles" ## delete all profiles that start with "ImageVis3D Mobile" # connect your device to your Mac / PC return to [[ImageVis3DMobileBeta | beta install]]. Collab:Project:Afib 200 2591 5498 5116 2010-07-13T20:44:32Z Erikj 2 Blanked the page wikitext text/x-wiki CIBC:ImageVis3D 0 2614 5513 5512 2010-12-02T01:53:32Z Tfogal 62 /* Experimental 64-bit Mac Builds */ note experimental patches to glew wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== '''note''': ''ImageVis3D exposes [http://bugreports.qt.nokia.com/browse/QTBUG-15782 Qt bug 15782]. As such, Qt 4.7 is unsupported at this time. Please use qt 4.6 for now. Thanks!'' '''double-note''': ''As a result of the aforementioned bug, we cannot support Visual Studio 2010 at this time. Sorry! We'd like to use it just as much as you, and we'll be sure to upgrade as soon as we can!'' If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You ''must'' build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Download the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. If you experience inexplicable GL errors, you'll need our special version of GLEW. This is not yet committed to the ImageVis3D tree; for now, please just ask about this on the ''tuvok-developers'' mailing list. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Importing Data == The most commonly asked question we get is, "How can I import my data into ImageVis3D?". Every now and again, people also ask us about our custom file format, UVF, why it exists, and if they can use or read such data in other tools. All of these questions and more are answered in a fairly comprehensive [http://ci.sci.utah.edu:8011/devbuilds/GettingDataIntoImageVis3D.pdf Getting Data into ImageVis3D] document. If you have further questions, please contact us on one of the mailing lists mentioned below! == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. We track bugs using the [https://launchpad.net/imagevis3d Launchpad] service. If you use ImageVis3D's builtin bug reporter, it will typically end up as a bug report on Launchpad. You can create a launchpad account to be able to subscribe to bugs and receive email when a related issue comes up, but this is not required. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. 5514 5513 2010-12-03T05:06:57Z Tfogal 62 /* Windows-only Caveats */ update qt support info wikitext text/x-wiki [http://www.sci.utah.edu/cibc/wiki/index.php/Main_Page Main CIBC Page] <br> [[CIBC:ImageVis3D:Plan|Looking for the old ImageVis3D design page?]] == Motivation and Overview == The goal of ImageVis3D development is to initially replicate the capabilities of the BioImage powerapp and then expand it capabilities to include all the functionality currently within [http://software.sci.utah.edu/scirun.html SCIRun] for visualizing three-dimensional rasterized data. The program is another light weight application in the same vein as [http://www.seg3d.org Seg3D] and [http://www.sci.utah.edu/cibc/software/map3d.html ''map3d'' ] and provides the user with streamlined access to the extensive volume visualization capabilities available from tools developed within the SCI Institute and the NCRR CIBC. == Getting ImageVis3D == === Download the binary === Download [http://www.sci.utah.edu/download/imagevis3d.html milestone releases] or the [http://www.sci.utah.edu/devbuilds/imagevis3d/ latest build] and simply run it. ImageVis3D is generally distributed with all required prerequisites. [[Image:Imagevis3d-no-redist-error.png|thumb|Visual C++ Redist error message on Windows systems]] For DirectX functionality you also may need to update your DirectX subsystem via this [http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en tool]. In addition to the main ImageVis3D program, we also provide a command line tool that allows you to convert your data into ImageVis3D's internal `UVF' format and vice-versa. You can download this UVFConverter [http://software.sci.utah.edu/devbuilds/imagevis3d/ via the devbuilds site]; it will be provided in the next release of ImageVis3D, but there is no official documentation as of yet (just run it with '--help' for now). In rare instances, Windows users might need to download the Microsoft C++ runtime redistributables ([http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en VS2008SP1 redist x86], [http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en VS2008SP1 redist x64]). If you run the 32bit version of ImageVis3D on a 64bit machine (not recommended), you'll need the 32bit runtime. Unless you see the error depicted on the right, this is not required. === Compile it Yourself === Assuming that you already have Qt 4.5 or newer on your machine all you have to do to compile ImageVis3D is: <nowiki>svn co https://gforge.sci.utah.edu/svn/imagevis3d</nowiki> qmake -recursive make If you do not have Qt installed yet, we provide some scripts to aid you in the process. * ''Windows'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Win-StaticQt.bat * ''Mac OS X'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Mac-StaticQt.sh * ''Linux'': https://code.sci.utah.edu/svn/imagevis3d/Scripts/Linux-StaticQt.sh ==== Windows-only Caveats ==== '''note''': ''Recent changes to Qt's static build means that we can support 4.6 and earlier or 4.7. We have chosen to only support Qt 4.7 and later on Windows. You are welcome to hack things to work with 4.6, but you're on your own!'' '''double-note''': ''Visual Studio 2010 is untested at this time. It may work, it may not; we do not officially support it at present.'' If you want to use the visual studio project files on windows you need to set the environment variables QTDIR32 and QTDIR64 (only if you want to compile a 64 bit build) to point to your Qt installation directories. <span style="color:#FF0000">ImageVis3D uses the 'tr1' extensions to C++. This means that you must download and install the Microsoft Visual Studio 2008 Service Pack 1 as well as Microsoft Visual Studio 2008 Feature Pack on when compiling with Microsoft Visual Studio 2008.</span> Do note that we do '''not''' currently support building via the binaries / Qt SDK supplied by [http://www.qtsoftware.com/ Qt software]. You ''must'' build Qt from source yourself. This restriction is somewhat relaxed on Linux, where distribution-supplied Qt installations tend to be acceptable (make sure you install "-dev" packages!). ==== Experimental 64-bit Mac Builds ==== We do not yet distribute 64-bit binaries on Apple platforms. We have internal builds for this platform, but we don't feel they meet the quality of other builds, and so we are not distributing binaries at this time. You can, however, build ImageVis3D yourself if you desperately need 64-bit support; this section shows you how. The mile-high view is that you need a 64-bit, Cocoa-backed Qt. Then you need to apply a few changes to the <TT>.pro</TT> files in the ImageVis3D tree. Finally you need to invoke the correct <TT>qmake</TT>, and then build. Since you are building manually, when you're done you probably want to run the ''Scripts/mk_app.sh'' script manually, to create a full-fledged Apple "bundle". There are two paths for your Qt install. The first is to use a [http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x Qt/Cocoa binary]. The ImageVis3D developers have never used such binaries and have no idea if this path will work. The second is to compile Qt from source manually. Compiling Qt from source can be a nightmare, but we provide a script that should get you past the heavy lifting, if not do everything for you. Earlier in this section we linked to a script to build Qt ''statically'', but Qt/Cocoa '''must''' be built as a dynamic framework. We supply [https://gforge.sci.utah.edu/gf/project/imagevis3d/scmsvn/?action=browse&path=%2F*checkout*%2FScripts%2FMac-DynamicQt-Cocoa.sh&revision=1471&content-type=text%2Fplain&pathrev=1471 another script] for building Qt in this manner. To compile Qt, download the script, edit it in a text editor to make sure it grabs the Qt version you want, as well as changing the argument to '<TT>arch</TT>' from '<TT>x86</TT>' to '<TT>x86_64</TT>'. Finally, run '<TT>sh Mac-DynamicQt-Cocoa.sh</TT>' in your shell to perform the compilation. This will take 10 to 20 minutes on your average Core 2 Duo iMac. After you've got Qt installed, the process should be the same regardless of which method you chose for installation. # Download the ImageVis3D source tree out of its version control repository. # Edit <TT>ImageVis3D/ImageVis3D.pro</TT>, <TT>Tuvok/Tuvok.pro</TT>, <TT>UVFReader/UVFReader.pro</TT> and <TT>CmdLineConverter/CmdLineConverter.pro</TT> in a text editor. Make sure QT_MAC_USE_COCOA equals 1. # Run <TT>qmake -recursive</TT>, making sure it invokes the 64-bit Qt/Cocoa qmake that you just installed (you might have multiple versions on your system!). #* This should print out some messages about doing a "shared build". If it prints our messages about a "static build", then you're either using the wrong <TT>qmake</TT> or you compiled Qt with the wrong options. # <TT>make</TT> # <TT>sh Scripts/mk_app.sh</TT> You can verify you've got a 64-bit executable using the '<TT>file</TT>' command: file Build/ImageVis3D.app/Contents/MacOS/ImageVis3D should tell you that the file is a 'Mach-O 64-bit executable x86_64'. If it says 32-bit or just x86, then you've built a 32-bit binary. Finally, you can start this version of ImageVis3D using '<TT>open Build/ImageVis3D.app</TT>'. If you experience inexplicable GL errors, you'll need our special version of GLEW. This is not yet committed to the ImageVis3D tree; for now, please just ask about this on the ''tuvok-developers'' mailing list. === ImageVis3D Mobile === ImageVis3D Mobile is a mobile volume rendering application that allows you visualize and share your data while you are on the go. With ImageVis3D and ImageVis3D Mobile you can transfer your data directly from the desktop to your mobile device. ImageVis3D currently supports all iPod touches and iPhones (including the new iPhone 3Gs). Download the application via the Apple App Store or request a pre-release from the ImageVis3D team. More information and a quick start guide are available [[ImageVis3DMobile|on a dedicated page]]. == Importing Data == The most commonly asked question we get is, "How can I import my data into ImageVis3D?". Every now and again, people also ask us about our custom file format, UVF, why it exists, and if they can use or read such data in other tools. All of these questions and more are answered in a fairly comprehensive [http://ci.sci.utah.edu:8011/devbuilds/GettingDataIntoImageVis3D.pdf Getting Data into ImageVis3D] document. If you have further questions, please contact us on one of the mailing lists mentioned below! == Sample Datasets == Some sample datasets are now available from the ImageVis3D [http://software.sci.utah.edu/SCIdownload.php?item=IV3DData download page]. == Join the Community == ImageVis3D is actively developed, open source software provided under the terms of the MIT license. Most discussion about new features and development happens via a set of mailing lists. These are: * [http://www.sci.utah.edu/lists/ iv3d-users], where release announcements are made and general user inquiries should be done. We ''greatly'' enjoy getting feedback via this list! * [https://lists.sci.utah.edu/sympa/subscribe/tuvok-developers tuvok-developers] is where development discussion should happen. If you are writing code for ImageVis3D, you should be subscribed to this list. * [https://lists.sci.utah.edu/sympa/subscribe/iv3d-develop iv3d-develop], for SCI-related ImageVis3D development. This is how we organize meetings at SCI, discuss what features we'd like to announce for grant requests, and so forth. The mailing list is open access and we do not discourage subscription, but we expect those without a SCI affiliation will find these discussions irrelevant. The ImageVis3D developers have developed some terminology which are frequently used in the context of ImageVis3D-related activities. A dictionary for these terms: * "iv3d"/"IV3D"/"ImageVis"/"ImgVis": ImageVis3D * "Tuvok"/"TUVOK": '''T'''he '''U'''ltimate '''VO'''lume (rendering) '''K'''it -- the renderer that powers ImageVis3D. * "UVF": ImageVis3D's custom file format, which enables fast access to multiresolution data. * "scio"/"SCIO"/"the io layer/subsystem": An independent library handling conversion from various data formats to UVF. === Report Issues === For non-fatal issues (those that don't cause ImageVis3D to crash), please use the `Help | Report an Issue' dialog within ImageVis3D itself. This causes additional debugging information which is useful for ImageVis3D developers to be sent along with your bug report. Further, if the issue is dataset specific, you can upload your dataset easily via this mechanism. We track bugs using the [https://launchpad.net/imagevis3d Launchpad] service. If you use ImageVis3D's builtin bug reporter, it will typically end up as a bug report on Launchpad. You can create a launchpad account to be able to subscribe to bugs and receive email when a related issue comes up, but this is not required. For all other issues, we ask that you subscribe to the [http://www.sci.utah.edu/lists/ iv3d-users] mailing list and post any problems you run into there. == Using ImageVis3D == === Manual === ImageVis3D comes with an [http://www.sci.utah.edu/images/docs/imagevis3d.pdf extensive manual]. === Video Tutorials === A series of video tutorials are available which visually describe how to use ImageVis3D. You can find them at the bottom of the [http://www.imagevis3d.org/ main ImageVis3D web site]. Main Page 0 1 5515 5500 2012-02-01T20:46:33Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> 2. Current density weighting matrix (Matrix_WeightingInSourceSpace), <math>R^{-\frac{1}{2}}</math>: A priori knowledge (source covariance) about solution space. == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5516 5515 2012-02-01T20:46:45Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 5520 5516 2013-08-16T21:51:00Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === <math> \operatorname{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}} </math> We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] c8732bdf25b5f736230f678cba3e8379bc1629cb 5521 5520 2013-08-16T21:53:52Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === <math> \operatorname{erfc}(x) = \frac{3}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}} </math> We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 0456a23c928a3f62ea906baee1cccff6d95cd85a 5522 5521 2013-08-16T21:55:00Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === <math> \operatorname{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}} </math> We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 93a4eaac1daddea7abdfd4046fac0a7811a298ae 5523 5522 2013-08-16T21:56:36Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === <math>\pi=\frac{3}{4} \sqrt{3}+24 \int_0^{1/4}{\sqrt{x-x^2}dx}</math> We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] ac05646914f94531a83907f7726760ea2dd6e37d 5524 5523 2013-08-16T22:02:21Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === <math>\pi=\frac{2}{4} \sqrt{3}+24 \int_0^{1/4}{\sqrt{x-x^2}dx}</math> We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 6313bcc4f9ef9f999ed03d09a288973b85ee0d66 5525 5524 2013-08-16T22:04:04Z Erikj 2 /* Please Participate! (Get an account) */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 0b75d4cd22beb01c3e991d26e3d59ed2d9250e5c 5526 5525 2013-12-03T05:13:07Z Erikj 2 wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == <math> \operatorname{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}} </math> [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 60f65fa4bf286661e1a99f0786efb273354208dd 5527 5526 2013-12-03T05:13:19Z Erikj 2 /* Welcome to the Biomedical Software Development,Engineering, and Dissemination Wiki! */ wikitext text/x-wiki == Welcome to the Biomedical Software Development,<br>Engineering, and Dissemination Wiki! == [[Image:Nih-ncrr-sci_logobar2.jpg]] === Please Participate! (Get an account) === We welcome and encourage your participation in this wiki. In order to combat wiki spam, however, we have had to remove the ability for users to create their own accounts. Everyone can view the pages intended for public consumption, however an account is required to edit them. This wiki is generally to be edited only by CIBC members and software developers. To get an account, please contact the CIBC site webmaster '''webmaster[at]sci.utah.edu'''. Include your full name and your position and affiliation with CIBC. You may also suggest a desired username for your account. We will set it up for you and email your login info as soon as possible, however some time may be needed to contact a CIBC PI to vouch for you. This page contains links to the most recent meeting agendas, as well as our current set of active development projects. Other CIBC content (descriptions of Core, overviews of Collaborations, links to Resources, etc) can be found [[CIBC:General | here]]. <br> == Projects == ===Meshing Portal=== ;[[CIBC:Meshing| Meshing Portal]] : Surface generation for tetrahedral meshes ===SCIRun 4=== ;[http://www.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun SCIRun 4 Information] : Overview of where we are with SCIRun 4 ===ImageVis3D=== [[CIBC:ImageVis3D | Development Information]] : Overview of where we are with ImageVis 1.0 and its rendering engine Tuvok ===Design Portal=== ;[[CIBC:SoftwareDesign| Software Design Portal]] :Information on current designs for new functionality ===Collaborations=== [[Collab:Project:Afib | Atrial Fibrillation Project]] [[CIBC:Project:Triedman | Simulation of Defibrillation in Children (Children's Hospital Boston) ]] [[CIBC:Project:NCMIR | Segmentation PowerApp for NCMIR ]] ===Development Info=== [http://software.sci.utah.edu/SCIRunDocs/index.php/Main_Page SCIRun Documentation Site] [[CIBC:Project:module development | Module writing tutorial]] [[CIBC:Project:Matlab | Matlab Dev FAQ]] [[CIBC:Project:Windows | Windows support tasks]] ===Technical Projects=== [[CIBC:Project:MeshRefinement | Mesh refinement]] [[CIBC:Project:TetGen | TetGen Bridge]] [[CIBC:Project:Power App | afront/marching cubes FE mesh comparison]] [[CIBC:Project:APP Interface dev | todo list for python algo interface classes]] == Meetings == ===NCRR Management Meetings=== [[CIBC:Meetings:Management:Agenda | Continuous Collaboration/Developer Agenda]] [[CIBC:Meetings:Management:Notes | Specific Meeting Notes ]] ===NCRR Exec Meetings=== [[CIBC:Meetings:Exec:02_Feb_06 | February 2nd, 2006]] == Workshops == === 2009 Workshops === [http://www.sci.utah.edu/cibc_wkshop2009/index.html CIBC 2009 Workshop Jan 18-19, 2009 Official Site] === 2008 Workshops === [http://www.sci.utah.edu/cibc/workshops/workshop2008/ CIBC 2008 Workshop Dec 4-5, 2008 Official Site] [[CIBC:Exec:Workshop08 | CIBC Workshop 2008 - Dec 4-5, 2008]] === 2006 Workshops === [[CIBC:Workshops:WorkshopCRC06 | CRA-NIH Computing Research Challenges in Biomedicine Workshop - June 15-16, 2006]] [[CIBC:Workshops:Workshop06 | Workshop April 20/21, 2006]] == Executive Materials == Note: This should be a restricted page with access only to NCRR Exec [[Exec:CIBC Exec Area]] 0b75d4cd22beb01c3e991d26e3d59ed2d9250e5c Help talk:Contents 13 999 5517 3137 2012-04-05T15:46:54Z Erikj 2 Blanked the page wikitext text/x-wiki CIBC:Documentation:SCIRun:Reference:MatlabInterface:InterfaceWithMatlab 0 1071 5518 3207 2012-07-27T21:07:42Z Ayla 57 /* Local configuration */ wikitext text/x-wiki =='''InterfaceWithMatlab'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] :Catagory: Interface :Author(s): Jeroen Stinstra :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Interactive InterfaceWithMatlab Interface: This module accomplishes a number of steps to integrate MATLAB code into SCIRun, (1) it translates a SCIRun object (field/matrix/nrrd) into a matlabarray and puts the object in the current workspace of matlab, (2) it executes MATLAB code that can be provided within the interface, (3) it translates back the matlabarrays in MATLAB's workspace into SCIRun objects. ====Detailed Description==== This module launches MATLAB as a separate process under control of SCIRun. The process can be on a remote machine or a local machine. In case the module is running on a remote machine the communication with matlab will be through sockets. In the latter case the entry fields in the middle panel of the GUI will need to be filled out with the IP address (it will automatically do a DNS lookup), the port number and a password. A password is only necessary for a remote MATLAB engine that is configured to require a password when launching MATLAB. The current implementation has an optional password in the matlabegine.rc, if this field is left empty no password check is done. The current implementation does not make use of secure sockets, this implementation is still under development. In order to run multiple MATLAB processes simultaneously different sessions can be launched. Each session on the same machine will share the global workspace in MATLAB and code is being executed sequentially for all modules making use of that session. Hence variables declared in the global workspace can be shared between these matlab modules. Once matlab is launched the intro message will appear in the MATLAB OUTPUT window. The module needs to be executed in order to launch matlab, but will then remain active until the module is destroyed. Alternatively MATLAB can be launched from the InterfaceWithMatlabEngine Status panel in the right lower corner. It can be disconnected using the 'disconnect' button in the same panel. That the MATLAB process is kept alive between executions is done to smoothen the executing of matlab networks and as well to be able to store variables in matlab's workspace for later usage. However before the module is executed the translation table of SCIRun objects to matlab objects needs to be setup. This is accomplished by connecting the SCIRun object to one of the input ports on the module. Note that there are ports for Matrices, Fields and Nrrds. In the translation menu the Field section deals with the translation of fields, the Matrix section with the translation of Matrices and the Nrrd section with the translation of the nrrds. Each line in this translation table refers to one set of input and output ports. First of all the module will need to know how the object should be called in MATLAB, it is going to be a matlab array and thus needs to have a name. Then depending on the SCIRun object the object can be translated into structured arrays or numeric arrays, whose numeric format can be set as well. See the sections below for more details. Then at the end of the line the name of the matlab array that needs to be translated back into a SCIRun object. Here a name is sufficient as the translation process will do the rest. The name can be the same as the input array, but it might refer to another array as well. The process of running code in MATLAB is accomplished as follows: SCIRun will translate the SCIRun objects into matlab compatible objects and write them in a file and then instructs matlab to read this file. Since all communication is through the stdin of matlab, using files makes sure that the data does not have to be written out in ASCII readable code. The module is smart enough to recognize that it translated objects before. If this is the case it will not do the translation again and it will use the file already generated. When loading data into matlab the objects that were already there with the same name will be overwritten. Subsequently the module will take the code the user entered in the GUI and wrap it in a 'try/catch' environment and execute it in matlab. All output generated on the stdout will be displayed in the module. It will write a tag of when the code starts executing as well one on when the code finished executing. These are markers for the module to keep track of when matlab finishes executing code. Please make sure that your progam does NOT generate output that resembles these markers as it will confuse the InterfaceWithMatlab Interface. Once the end marker is encountered, the module will instruct matlab to save the variables in the workspace so they can be read in by SCIRun. The third window on the bottom will show the current status of the matlab engine. Note: when session 0 is requested a new session number will be assigned to the matlab process, which has not been used before. The new session number will appear in this status window. This option can be used to give each InterfaceWithMatlabInterface Module its own matlab process running in the background. ====Local configuration==== Before the module can be used, SCIRun needs to know how to run matlab on the local machine. This is accomplished by the configuration file 'matlabengine.rc', which will be created in the SCIRun/services directory in your local HOME directory. This file is copied out of the src tree the first time SCIRun is run. This file configures how matlab should be run. Edit the line 'startmatlab=' to instruct SCIRun how matlab should be started from an 'sh'-compatible shell. If matlab can already be found using the PATH settings in the shell launching SCIRun, this line probably does not need to be altered. All other fields in this file refer to running matlab on a remote machine. In case SCIRun will not be able to launch matlab a message will be displayed asking to check the configuration file. To open a matlab process on the local machine the 'MATLAB ENGINE ADDRESS' in the GUI needs to have an empty Address and does not require a port. SCIRun will in this case automatically launch matlab locally. In the latter case no password checks are done. The local manager does support multiple sessions. To clarify the word session: a session is a matlab process. When multiple InterfaceWithMatlab modules make use of the same session the workspace in matlab is shared. Hence one module can be used to load a large matrix into matlab, whereas another one can be used to iterate over a process with small matrices, while using the big matrix stored by the first one. This will allow for some efficiency improvements. ====Remote configuration==== In order to run matlab on a different machine then SCIRun, a small server program needs to be run on the remote machine. The latter is called 'scirunremote', this program sets up a socket for listening and launches matlab when a request is made on its socket. This program uses the same 'matlabengine.rc' file as the module (though it will look in the local HOME directory of the remote machine). This configuration file can be used to set a password, restrict login to only certain machines in a certain domain. Currently the communication is over an open socket in the future an openssl implementation will be used for secure connections. In order to launch the scirunremote program, type 'scirunremote -port 5678', or which ever port you want to use. The latter program must be run on the remote system and serves as a daemon for starting all kinds of external programs. When launching this application a list of services will be displayed. For the matlab engine to work properly two services need to be switched on: matlabengine and matlabenginefiletransfer. The currently implementation requires the last one even if there is a shared home directory. In the latter case no files are transfered, and only the names of the directories in which temporary files are stored are exchanged. The latter mechanism will reduce the amount of network traffic and hopefully speed up the function of this module. ====Configuration file==== This section shortly lists the different options that can be set in the configuration file 'SCIRun/services/matlabengine.rc' START MATLAB: This line describes how a sh-shell should start matlab. This instruction is executed to launch matlab DISABLE: This will disable the matlabengine in scirunremote. The service cannot be launched and any request for starting the matlabengine will be denied. PASSWORD: A simple password, as a first line of defense. Better ways will follow. RHOSTS: A list of machines that are allowed to log into scirunremote to request the matlabengine service. This list should contain all the machines you want to use for running SCIRun. Any machine not on the list will be denied access. If no machine is listed all machines are welcome to log in. MATLABTIMEOUT: How long should we wait before giving up. Note that matlab often needs a couple of minutes to startup. The time entered here is in seconds. ====How to use the GUI==== [[Image:Reference_MatlabInterface_GUIpic1.png|The three main panels of the GUI and what they represent]] The GUI is subdivided into three mainparts. The top panel controls the translation from SCIRun objects into matlab objects and vice versa. The middle panel controls where the matlab engine is started and whether a matlab engine is shared with another InterfaceWithMatlab module. The lower panel displays the matlab code that needs to be executed and the output from matlab. The subdivision is shown in figure CROSS REFERENCE. [[Image:Reference_MatlabInterface_GUIpic2.png|The SCIRun to matlab translation panel]] The first panel configures the matlabconverter which is used to translate SCIRun objects into matlab objects and vice versa. This matlabconverter is the same as used by the modules MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE, MODULE REFERENCE. The SCIRun objects are translated into matlab files which are stored in a temparory directory that is automatically generated and are subsequently read by matlab. For the translation back into SCIRun a similar mechanism is used which tells matlab to write out the results in matlab files and these files are subsequently loaded into SCIRun. The input options are the same as for the other modules: the first field on the left controls the name that an object has in matlab. This name has to be alphanumeric and needs to adhere to InterfaceWithMatlab's naming convention. When writing matlab code this name can be used to access the object. The second parameter in the list controls the data format used for the matlab objects, i.e. whether the data is written as doubles, floats, or ints; the third parameter controls what kind of object is created. For matrices and nrrd the most logical translation is a multi dimensional matrix, which is thence the default. All the properties and axis settings are lost in such a translation. Hence the option is offered to translate the SCIRun object into a structured array in which each field represents one of the dataelements stored in that SCIRun object. The documentation on which fieldnames are used and how the object is translated, can be found in the documentation of the individual modules doing this translation. A summary of how geometrical data is represented is given below. Concerning the output variables, only the name needs to be known. If the object is not compatible an error message will be generated in the error message GUI of module. This message will also explain why the object could not be translated. [[Image:Reference_MatlabInterface_GUIpic3.png|GUI for determining where MATLAB should be run]] The second panel tells SCIRun where to launch MATLAB. For a matlab engine on the local machine leave the Address field empty. For a remote engine enter the DNS or IP address of the remote server. The engine should support IPv6 addresses, although the support has not fully been tested. The second field is the port number for a remote matlab process. Currently the program scirunremote needs to be run on the remote side. This program will allow SCIRun to connect to this machine and run all kinds of remote applications. The program scirunremote needs to be run with a port number, this is the number that needs to be entered here. Optionally a password protection can be added. Currently the implementation of the password is a weak protection and will need some more adjustments in the future. The fourth entry is a session number. Each matlabengine on a certain host is identified by a unique number. This number is stored by the program launching matlab (scirun on the local machine and scirunremote on the remote machine) and is used to see whether a session is already open. If multiple InterfaceWithMatlab modules refer to the same session, no new matlab engine will be opened in stead these modules will share the use of the matlab engine. If session '0' is used a new non existing session number will be assigned by the matlab engine. [[Image:Reference_MatlabInterface_GUIpic4.png|The panel for running code in matlab]] The lower panel contains there parts: the first for setting the code matlab needs to execute, the second for displaying matlab's output and the third for displaying the current status of the matlab engine. The code to be entered should assume that the matrices that have been created out of SCIRun objects already reside in the work space of matlab. In the code that maintains this absolute paths are used to ensure that the matrices can be found. The code will also be embedded in a try-catch statement to make sure that an end marker is generated even if the code crashes. All these measures to run code are hidden in the engine and the user should not worry about them for simple code. The code in that needs to be execute can be loaded and saved as well. So for more complex tasks the matlab code can be written in a different more userfriendly text editor. The extension of the filenames need to .m and are similar to matlab scripts. Please do not confuse these with functions. The latter will not work as functions need the input to be parsed to them. If a function call is desired, put the instruction that calls the function in the matlab code field and not the function code itself. The second part of the lower panel contains the matlab output. It will display all the output generated by matlab. Currently, it can parse input as well, though that is limited to normal keystrokes. Simple commands may be given, but still the full functionality as found in a shell is not present yet. This latter feature is still experimental and will be expanded in future versions. The third part of the lower panel, displays the current status of the matlab engine. The information stored here can be used for debugging and to see whether the matlab engine is running properly. The connection to matlab engine can be closed here as well and new connections can be made without the need of executing the module. ====Translation of FIELDS==== The following is an incomplete overview of the translation between SCIRun and MATLAB field objects. The following describes how fields are to be prepared in matlab for it to be used in SCIRun. The opposite process will be done for the input ports. Note that there one can specify whether one ones a structured or numerical matlab array. In case of numerical array only the data from the field is taken and the rest is thrown away. In case of a structured matlab array the data is fitted into a structure with the same fields as described below. The following sections describe the fields of the structure matrix can be defined and are recognized by the module. ====Unstructured Meshes ==== FIELDNAME .node This field is required for unstructured meshes and defines the position of the nodes within the mesh. This matrix should be a dense 3 by M matrix, where M is the number of nodes. FIELDNAME .edge This field is required for curve meshes and defines the line elements in the mesh. This matrix should be a dense 2 by N matrix, where N is the number of line segments. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this EDGE matrix is zero, a zero base is assumed. FIELDNAME .face This field is required for surfaces meshes and defines the surface elements in the mesh. This matrix should be a dense 3 by N matrix for triangulated meshes and a 4 by N matrix for quadsurf meshes. Here N is the number of surface elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this FACE matrix is zero, a zero base is assumed. FIELDNAME .cell This field is required for volume meshes and defines the volume elements in the mesh. This matrix should be a dense 4 by N matrix for tetrahedral meshes, or a 6 by N matrix for prism shaped volume elements, or a 8 by N matrix for hexahedral elements. Here N is the number of volume elements. The numbers in this mesh refer to the node positions in the NODE matrix. By default it is assumed that the numbering of nodes starts at one. However if one of the indices in this CELL matrix is zero, a zero base is assumed. ====Structured Meshes==== FIELDNAMES x , y , AND z The fields X, Y, and Z form the description of a structured mesh. These fields are 1D, 2D, or 3D matrices defining the structured line, surface, or volume data. The connectivity of these meshes is defined by the position of the matrix, neighboring elements are connected. In this definition matrix X defines the x cartesian co-ordinate of each node, matrix Y the y cartesian co-ordinate and matrix Z the z cartesian co-ordinate. This kind of definition is compatible with MATLAB functions such as ndmesh() and sphere(). ====Structured regular Meshes==== As structured matlab arrays: FIELDNAME .dims This field describes the dimensions of the regular grid and is required for making a regular structured mesh. This field is a vector with 1, 2, or 3 elements describing the dimensions in each direction. Hence depending on this field the module creates a line, a surface, or a volume. This field is required for structured regular meshes. FIELDNAME .transform This field describes a 4x4 matrix which defines an affine transformation, which is applied to the mesh. This matrix describes rotation, translation and scaling of each node in the regular mesh. This field is optional and does not need to be supplied. In case on transform matrix is defined a regular grid with spacing of 1 in each direction will be generated. [NEED TO ADD MORE DETAILS] As regular dense matrices: ImageFields and LatVolFields can be entered as well as dense matrices. A 2D matrix will be translated into an ImageField, and a 3D matrix will be translated into a LatVolField. When entering data as regular matrices, the data is assumed to be on the nodes and to be a scalar double field. Note: The displaying dimensions between matlab and SCIRun are flipped, in matlab the first dimension is along the vertical axis, whereas in SCIRun it is along the horizontal axis. Depending on the application the data may need to be transposed, in order to make to obtain the proper vertical alignment. ====Field Data==== FIELDNAME .field A matrix specifying scalar/vector/tensor data for each node/element in the mesh. Each subsequent element in this vector is added to the next node/element in the field. Use the field FIELDLOCATION to specify where the data should be located. The module detects the type of data. The tensor and respectively the vector dimension is assumed to be the first one. FIELDNAME .fieldtype A string specifying the type of data stored in field. Currently three value are accepted: 'scalar', 'vector', and 'tensor'. If this type information is omitted it defaults to 'scalar' FIELDNAME .fieldat The location of the data. This field is a string describing where the data should be located. The default field location is assumed to be the nodes, meaning each node has a scalar, vector, or tensor value. In case the data is at the nodes, this field does not to be specified. This field is a string with the following options: "node", "edge", "face", or "cell". This field can be a number as well, which will describe the basis order of the element. The way of specifying a field was different in version 1.22 of SCIRun. The modules still support input through the fields 'vectorfield', 'tensorfield', and 'scalarfield'. However to be compatible with future additions this has been changed to a combination of 'field' and 'fieldtype'. The new fieldwriters will use this convention instead of the old one. The module will try to reconstruct data, for instance if a matrix is transposed, it will detect this and read the data properly. Most of the fields mentioned are optional and are not necessary. Only choose those fields from the list that are needed to describe your data. Currently not every field type supported by SCIRun is implemented in this module. Hopefully future versions will support more data types and have even less restrictive converters. ==== Example 1: preparing MATLAB file ==== The following lines of MATLAB code demonstrate how to structure a matrix for the use in SCIRun. Assuming that the nodes are specified in nodematrix and the connectivity of these nodes is specified in facematrix >> geom.node = nodematrix >> geom.face = facematrix Opening the file with the InterfaceWithMatlabFieldsReader module will show that there is one data matrix called "geom" whose contents is a TRISURFMESH with no data on any of the node points In case MATLAB is not available to structure the data, use the MODULE REFERENCE module to read a MATLAB matrix data directly and use the MODULE REFERENCE module to construct a Field out of the Nrrd object. ==== Example 2: Creating a structured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab file with the matlab logo on a structured mesh: >> [X,Y,DATA] = peaks(100); >> field.x = X; >> field.y = Y; >> field.z = DATA; >> field.scalarfield = DATA; This will create a surface mesh in the shape of the peaks logo and uses the z value as its data values. Be sure to specify all the three cartensian coordinates, omitting one will result in the module not to recognise the mesh and it will not display the object in its selection box. ==== Exampe 3: Creating an unstructured mesh ==== The following lines of MATLAB code demonstrate the creation of a matlab fiel with an unstructured tesselated surface: >> [X,Y,Z] = ndmesh(1:10,1:10,0); >> field.node = [X(:)'; Y(:)'; Z(:)']; >> field.face = delauney(X,Y); >> field.scalarfield = X(:).^2; ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:MatlabInterface|MatlabInterface]] CIBC:ImageVis3D ChangeLog-2.1.1 0 2647 5519 2012-08-20T23:34:55Z Tfogal 62 add 2.1.1 changelog wikitext text/x-wiki = ImageVis3D 2.1.1 = The ImageVis3D team is proud to announce the release of ImageVis3D 2.1.1! ImageVis3D is a desktop volume rendering application which was designed to visualize large data. Support is available for multiple rendering modes, such as 1D and 2D transfer functions, isosurface rendering, as well as specialized modes such as MIP and slice views. On modern systems, ImageVis3D's GPU-accelerated rendering delivers incredible performance, while compatibility options exist to allow ImageVis3D to perform adequately on older systems. ImageVis3D 2.1.1 is a minor release, concentrating mostly on bugfixes. Changes since 2.1.0 include: == New Features == * Added support for GeomView files. == Bugs fixed in this release == * Fixed ClearView crash. * Fixed clipping plane transformations. Clipping planes now behave as they did prior to 2.1.0. * Fixed a crash which could occur when converting MetaMorph files. * Fixed a data corruption bug when converting from certain types of 'wide' data types. == Changes which are only of interest to developers == * Transitioned to C++11. * Clang is now the default compiler on Mac. == Known issues with this release == * There is a known issue converting color data in a single TIFF file. * The 'Stack' ("stk"), single-file TIFF volume, and Fraunhofer EZRT ("rek") file formats can only be read, not written. * The 'Brick Of Values' (BOV) reader does not support BOVs in which the data are split across multiple files. * RGB[A] are the only kinds of multicomponent data supported. * NVIDIA GPUs on Linux expose a driver issue which can hang the system for prolonged periods of time. To workaround this issue, we recommend sticking with the slice based volume renderer Linux for this release. * Full-color data sets do not display a proper histogram in the transfer function editors. * In any mode but MIP, the 'Recorder' always uses the highest resolution data, regardless of any other settings. * In the "Disable LOD" mode of MIP Recordings, progress information is not given. Progress is being made; a visibly-correct rendering is not required to create an on-disk image which is visibly correct. ImageVis3D 2.1.1 supports Intel Macs 10.7 and up (10.8.0 recommended), Windows, and Linux. Binaries are available at: http://www.imagevis3d.org/ the 'developer builds' site: http://ci.sci.utah.edu:8011/devbuilds/ the 'sci' PPA on Launchpad (Linux only): https://launchpad.net/~tfogal/+archive/ppa or you can get the source directly from our subversion repository, using the 'svn' command: svn co https://gforge.sci.utah.edu/svn/imagevis3d or any other subversion client. We look forward to your feedback! Like us on facebook: http://www.facebook.com/pages/ImageVis3D/280651915286334 comment on our wall, or talk to us on this mailing list! Cheers, - The ImageVis3D team. CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTSVD 0 1162 5528 3301 2014-09-29T18:39:19Z Ayla 57 /* Description */ wikitext text/x-wiki =='''SolveInverseProblemWithTSVD'''== ===Information=== :Package: [[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] :Catagory: Inverse :Author(s): Alireza Ghodrtai :Status: Supported in latest version :Version: '''3.0''' ---- ===Description=== ====Summary==== Solve inverse problem using Truncated SVD. ====Detailed Description==== Solve inverse problem using Truncated SVD. Truncated generalized SVD (TGSVD) is not currently supported. ---- ===Frequently Asked Questions=== ---- ===Known Bugs=== ---- ===Recent Changes=== ---- Go back to [[CIBC:Documentation|Documentation]]:[[CIBC:Documentation:SCIRun|SCIRun]]:[[CIBC:Documentation:SCIRun:Reference|Reference]]:[[CIBC:Documentation:SCIRun:Reference:BioPSE|BioPSE]] 9b5e1501820c2be8178194f253ebb5107825beab Berkeley 0 2648 5533 2023-10-26T14:58:14Z Utah 66 Created page with "Berkeley" wikitext text/x-wiki Berkeley 520e1b9fa6b2207446fa7717cd69369fe5ba1876 5534 5533 2023-10-26T14:58:20Z Utah 66 Blanked the page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Marvel Strike Force Hack Latest Version 2023 New Gold Orbs (Unique) 0 2649 5535 2023-10-28T11:28:39Z Tfogal 62 Created page with ""Looking to level up your Marvel Strike Force game? Introducing Marvel Strike Force Hack, Generator, and Cheats! Unlock unlimited resources, free Gold Orbs, and power up your..." wikitext text/x-wiki "Looking to level up your Marvel Strike Force game? Introducing Marvel Strike Force Hack, Generator, and Cheats! Unlock unlimited resources, free Gold Orbs, and power up your gameplay with our trusted online resources generator. Don't miss out on the ultimate Marvel Strike Force experience. Get started now with Marvel Strike Force Hack, Generator, and Cheats. Play like a superhero!" CLICK HERE > https://cheatmod.org/fdeb280 918a70d2ec6f9172ac5dec727e985bb919d93049 Marvel Strike Force Cheats Free Gold Orbs 999,999K Gold Orbs Free 2023 in 5 minutes (successive) 0 2650 5536 2023-10-28T11:28:42Z Tfogal 62 Created page with "Introducing the ultimate power-up for Marvel Strike Force! Unlock unlimited resources, free gold orbs, and dominate the game with the Marvel Strike Force Hack, Generator, and..." wikitext text/x-wiki Introducing the ultimate power-up for Marvel Strike Force! Unlock unlimited resources, free gold orbs, and dominate the game with the Marvel Strike Force Hack, Generator, and Cheats. Level up your gameplay with our online resources generator for Marvel Strike Force. Upgrade your heroes, conquer battles, and become unstoppable. Don't miss out on this opportunity - Get your Marvel Strike Force Hack, Generator, and Cheats now! #MarvelStrikeForce #GamingHacks CLICK HERE > https://cheatmod.org/fdeb280 92128654aac832dae52fd4790b4ff5dc35c8673e Free Marvel Strike Force Generator Working Gold Orbs No Human Verification (Marvel Strike Force) Cheats 0 2651 5537 2023-10-28T11:28:45Z Tfogal 62 Created page with "Unleash your true power in Marvel Strike Force with our brand new tools - Marvel Strike Force Hack, Marvel Strike Force Generator, Marvel Strike Force Cheats, Marvel Strike Fo..." wikitext text/x-wiki Unleash your true power in Marvel Strike Force with our brand new tools - Marvel Strike Force Hack, Marvel Strike Force Generator, Marvel Strike Force Cheats, Marvel Strike Force Free Gold Orbs, and Marvel Strike Force Resources Generator Online. Level up your gameplay and dominate the battlefield with unlimited resources at your fingertips. Don't miss out on this opportunity to enhance your gaming experience. Try our Marvel Strike Force tools now! CLICK HERE > https://cheatmod.org/fdeb280 7b3bc32d5cbe9dab0fc43ca214d9d5764c050f8d Free Clash Royale Hack Gems No Human Verification 2023 (Legal) 0 2652 5538 2023-10-28T11:30:49Z Tfogal 62 Created page with ""Get ahead in Clash Royale with our powerful resources generator! Introducing Clash Royale Hack, Clash Royale Generator, and Clash Royale Cheats - the ultimate solution to boo..." wikitext text/x-wiki "Get ahead in Clash Royale with our powerful resources generator! Introducing Clash Royale Hack, Clash Royale Generator, and Clash Royale Cheats - the ultimate solution to boosting your gameplay. Unlock unlimited free gems and resources with our secure online tool. Don't miss out on this opportunity to dominate the arena. Try Clash Royale Hack, Clash Royale Generator, Clash Royale Cheats, and get ready to conquer!" CLICK HERE > https://cheatmod.org/a1bedf0 d71218cf18126c912f2b78248ae5094d380a6f97 Clash Royale Cheats Gems IOS Android No Verification 2023 (fresh method) 0 2653 5539 2023-10-28T11:30:51Z Tfogal 62 Created page with ""Looking for a way to level up your Clash Royale game? Look no further! Introducing Clash Royale Hack, Clash Royale Generator, Clash Royale Cheats, Clash Royale Free Gems, Cla..." wikitext text/x-wiki "Looking for a way to level up your Clash Royale game? Look no further! Introducing Clash Royale Hack, Clash Royale Generator, Clash Royale Cheats, Clash Royale Free Gems, Clash Royale Resources Generator Online. With our powerful tools, you can unlock unlimited resources, boost your gameplay, and dominate the arena like never before. Say goodbye to limitations and hello to victory! Try Clash Royale Hack, Clash Royale Generator, Clash Royale Cheats, Clash Royale Free Gems, Clash Royale Resources Generator Online today and unleash your full gaming potential. Get started now!" CLICK HERE > https://cheatmod.org/a1bedf0 e3d0d39aa226a4f2a364542285241000ec4244d7 Clash Royale Generator Unlimited Gems 2023 No Human Verification (fresh strategy) 0 2654 5540 2023-10-28T11:30:54Z Tfogal 62 Created page with ""Looking to dominate in Clash Royale? Look no further! Introducing Clash Royale Hack - the ultimate tool to level up your game. Generate unlimited resources, unlock powerful c..." wikitext text/x-wiki "Looking to dominate in Clash Royale? Look no further! Introducing Clash Royale Hack - the ultimate tool to level up your game. Generate unlimited resources, unlock powerful cards, and collect free gems effortlessly with our trusted Clash Royale Generator. Say goodbye to grinding and hello to victory! Don't miss out on this game-changing opportunity. Try Clash Royale Cheats today and experience gaming like never before. Get started now with our free gems and resources generator online. Play smarter, play stronger, play with Clash Royale Hack." CLICK HERE > https://cheatmod.org/a1bedf0 cbd8ad62660b3a40f0b7e3f2c9ee63350a1936a9 Gardenscapes Hack Unlimited Coins Stars IOS And Android No Survey 2023 (free!!) 0 2655 5541 2023-10-28T11:32:32Z Tfogal 62 Created page with "Introducing Gardenscapes Hack, Generator, Cheats, and Free Coins Stars! Need more resources for your Gardenscapes game? Look no further! Our online Resources Generator is here..." wikitext text/x-wiki Introducing Gardenscapes Hack, Generator, Cheats, and Free Coins Stars! Need more resources for your Gardenscapes game? Look no further! Our online Resources Generator is here to help you unlock unlimited coins and stars. Say goodbye to limitations and enjoy the game to the fullest. Try Gardenscapes Hack, Generator, Cheats, and Free Coins Stars now! CLICK HERE > https://cheatmod.org/038f81d 8482b618f14dd2b8f1ddad1b22df7186311aef34 Gardenscapes Cheats Coins Stars Working No Human Verification (refreshed version) 0 2656 5542 2023-10-28T11:32:33Z Tfogal 62 Created page with "Looking to level up your Gardenscapes game without spending a dime? Introducing Gardenscapes Hack, Generator, and Cheats! Get unlimited Coins, Stars, and resources with our on..." wikitext text/x-wiki Looking to level up your Gardenscapes game without spending a dime? Introducing Gardenscapes Hack, Generator, and Cheats! Get unlimited Coins, Stars, and resources with our online generator. No more waiting or grinding - just endless fun in your virtual garden. Try Gardenscapes Hack, Generator, and Cheats now and transform your gameplay! Play smarter, not harder. Get started today! CLICK HERE > https://cheatmod.org/038f81d 7020172dd947383dcee403a5f78151cda7325d89 Working Gardenscapes Generator Coins Stars Android Ios 2023 No Human Verification (HOT) 0 2657 5543 2023-10-28T11:32:49Z Tfogal 62 Created page with "With our online Resources Generator, you can now enjoy endless hours of fun in Gardenscapes without worrying about running out of resources. No more waiting for hours or spend..." wikitext text/x-wiki With our online Resources Generator, you can now enjoy endless hours of fun in Gardenscapes without worrying about running out of resources. No more waiting for hours or spending real money to progress in the game. Experience the joy of creating your dream garden without any limitations. Unlock new levels, decorate your garden with stunning items, and complete challenging tasks effortlessly. Don't miss out on this amazing opportunity to enhance your Gardenscapes gameplay. Try Gardenscapes Hack, Generator, and Cheats today and discover a whole new world of possibilities! Note: This ad promotes a third-party tool and may not be endorsed or affiliated with the official Gardenscapes game. CLICK HERE > https://cheatmod.org/038f81d b3c08327c5b47cc712006efc3d65fb9bffb766d5